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 相关文章推荐
javascript 支持链式调用的异步调用框架Async.Operation
Aug 04 Javascript
jQuery实现跨域iframe接口方法调用
Mar 14 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
Aug 21 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
Dec 07 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
Jan 27 Javascript
js实现不重复导入的方法
Mar 02 Javascript
JSONP跨域请求实例详解
Jul 04 Javascript
JavaScript中数组的各种操作的总结(必看篇)
Feb 13 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
Apr 22 Javascript
详解微信小程序 相对定位和绝对定位
May 11 Javascript
vue进入页面时滚动条始终在底部代码实例
Mar 26 Javascript
Vuex中实现数据状态查询与更改
Nov 08 Javascript
微信小程序自定义键盘 内部虚拟支付
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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
php 动态多文件上传
2009/01/18 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
json 定义
2008/06/10 Javascript
JS option location 页面跳转实现代码
2008/12/27 Javascript
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
Python生成不重复随机值的方法
2015/05/11 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
python实现简易淘宝购物
2019/11/22 Python
Python chardet库识别编码原理解析
2020/02/18 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
小学门卫岗位职责
2013/12/17 职场文书
老师给学生的表扬信
2014/01/17 职场文书
会计助理岗位职责
2014/02/17 职场文书
环保建议书作文
2014/03/12 职场文书
2014年教务处工作总结
2014/12/03 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
通讯稿范文
2015/07/22 职场文书
中秋节祝酒词
2015/08/12 职场文书