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 相关文章推荐
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
Aug 28 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
Jan 21 Javascript
jquery的相对父元素和相对文档定位示例代码
Aug 02 Javascript
使用js dom和jquery分别实现简单增删改
Sep 11 Javascript
JS实现浏览器打印、打印预览示例
Feb 28 Javascript
如何从零开始利用js手写一个Promise库详解
Apr 19 Javascript
详解Axios 如何取消已发送的请求
Oct 20 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
Aug 07 Javascript
layui-select动态选中值的例子
Sep 23 Javascript
JS变量提升及函数提升实例解析
Sep 03 Javascript
JS+CSS实现炫酷光感效果
Sep 05 Javascript
解决vue自定义组件@click点击失效问题
Apr 30 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内核探索:变量存储与类型使用说明
2014/01/30 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
定义JavaScript二维数组采用定义数组的数组来实现
2012/12/09 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
JavaScript监听和禁用浏览器回车事件实例
2015/01/31 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
js给selected添加options的方法
2015/05/06 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
[03:56]DOTA2完美大师赛趣味视频之小鸽子和Mineski打台球
2017/11/24 DOTA
Python中模拟enum枚举类型的5种方法分享
2014/11/22 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
python输出数学符号实例
2020/05/11 Python
python性能测试工具locust的使用
2020/12/28 Python
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
阿里云:Aliyun.com
2017/02/15 全球购物
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
自我鉴定的范文
2013/10/03 职场文书
高中毕业生个人自我鉴定
2013/11/24 职场文书
大型演出策划方案
2014/05/28 职场文书
创新社会管理心得体会
2014/09/12 职场文书
出国留学英文自荐信
2015/03/25 职场文书
小学四年级班务总结该怎么写?
2019/08/16 职场文书
创业计划书之家政服务
2019/09/18 职场文书
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang