vue favicon设置以及动态修改favicon的方法


Posted in Javascript onDecember 21, 2018

最近写公司项目时,动态更新favicon

动态更新之前需要有一个默认的favicon。

目前vue-cli搭建的vue项目里面已经有了一个static文件夹,存放静态文件。

vue favicon设置以及动态修改favicon的方法

favicon图片放到该文件夹下。

然后再index.html中添加:

<link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico" rel="external nofollow" >

然后刷新浏览器,就会更新。

如果没有效果,则查看你的build文件夹下:build/webpack.dev.conf.js中。(到这个步骤之前我的是出现了,并且正常显示,如果不显示,则配置一下吧。)

vue favicon设置以及动态修改favicon的方法

new HtmlWebpackPlugin({
   filename: 'index.html',
   template: 'index.html',
   inject: true,
   favicon:'../stastic/favicon.ico'
  }),

到这个时候,页面的favicon已经可以正常显示了。

然而,如何从服务器动态获取图片呢,这样以来就可以像上传文件一样,随意更换favicon。先看一下stackoverflow上的回答

(function() {
  var link = document.querySelector("link[rel*='icon']") || document.createElement('link');
  link.type = 'image/x-icon';
  link.rel = 'shortcut icon';
  link.href = 'http://www.stackoverflow.com/favicon.ico';
  document.getElementsByTagName('head')[0].appendChild(link);
})();

动态创建link标签,然后添加元素。我目前写的项目是从前端上传到服务器的图片,关于如何上传图片,额,粘贴一下代码吧。

logoFirstChange(val) {
    let that = this; 
    let Fr = new FileReader;
    let file = val.target.files[0];
//获取需要更换的img的id,我这里更换的图片比较多,并且方法都一样,所以写同样的方法里面了。
    let img = document.getElementById(val.srcElement.name.split('|')[0]);
    Fr.readAsDataURL(file);
    Fr.onloadend = function () {
     img.src = this.result;
    };
    let fd = new FormData();
//addend('参数名','参数值'),参数名需要和后端对应
    fd.append('InputFile', file);
    fd.append('logo_id', val.srcElement.name.split('|')[1]);
//vue项目中为了方便更改一下axios原型链,其实就是发送一个axios请求。这里正常的axios就行,不用谢Blob类型,没什么用,我当时是为了测试一下这个类型。
    that.Axios.post(that.prefix + '/yr_logo/logo_update/',fd,new Blob([fd], { type: 'multipart/form-data' }))
     .then(function (res) {
      if (res.data.status == 1) {
       util.notification('success', '成功', res.data.success_msg);
      } else {
       util.notification('error', '失败', res.data.error_msg);
      }
       img.value = '';
     })
     .catch(function (err) {
      console.log(err);
     });
//上传之后修改了一下axios的原型链,因为全局其他页面都需要。(这里忽略)
    that.Axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
    that.Axios.defaults.transformRequest = function (data) {
     let ret = '';
     for (let it in data) {
      ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
     }
     return ret.slice(0, ret.length - 1);
    }
   }

先这样吧,语言组织能力不怎么样,想起来什么再补充。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
通过jquery实现tab标签浏览效果
Feb 20 Javascript
JavaScript操作XML文件之XML读取方法
Jun 09 Javascript
js实现带圆角的两级导航菜单效果代码
Aug 24 Javascript
jQuery实现Tab菜单滚动切换的方法
Sep 21 Javascript
javascript省市区三级联动下拉框菜单实例演示
Nov 29 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
Aug 03 Javascript
Node.js的基本知识简单汇总
Sep 19 Javascript
Vue 单文件中的数据传递示例
Mar 21 Javascript
详解Nuxt.js Vue服务端渲染摸索
Feb 08 Javascript
element-ui upload组件多文件上传的示例代码
Oct 17 Javascript
深入了解js原型模式
May 30 Javascript
教你部署vue项目到docker
Apr 05 Vue.js
微信小程序自定义键盘 内部虚拟支付
Dec 20 #Javascript
微信小程序实现随机验证码功能
Dec 20 #Javascript
微信小程序实现发送验证码按钮效果
Dec 20 #Javascript
使用puppeteer爬取网站并抓出404无效链接
Dec 20 #Javascript
详解如何使用node.js的开发框架express创建一个web应用
Dec 20 #Javascript
js canvas实现橡皮擦效果
Dec 20 #Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
Dec 20 #Javascript
You might like
详谈PHP编码转换问题
2015/07/28 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
2014/06/05 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
JavaScript DOM 学习总结(五)
2015/11/24 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
2017/01/13 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
2017/06/11 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
JS中的BOM应用
2018/02/02 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
Python导入模块时遇到的错误分析
2017/08/30 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
python利用tkinter实现屏保
2019/07/30 Python
Django中Aggregation聚合的基本使用方法
2020/07/09 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
项目管理计划书
2014/01/09 职场文书
三年大学生活自我鉴定
2014/01/21 职场文书
政府采购方案
2014/06/12 职场文书
公务员个人总结
2015/02/12 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
小学英语教学随笔
2015/08/14 职场文书
2016年秋季运动会通讯稿
2015/11/25 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers