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入门教程(1) 什么是JS
Jan 31 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
Apr 02 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
Nov 21 Javascript
js登录弹出层特效
Mar 07 Javascript
通过JS动态创建一个html DOM元素并显示
Oct 15 Javascript
jQuery简单实现禁用右键菜单
Mar 10 Javascript
JavaScript制作windows经典扫雷小游戏
Mar 31 Javascript
jQuery html表格排序插件tablesorter使用方法详解
Feb 10 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
Jul 10 jQuery
echarts实现折线图的拖拽效果
Dec 19 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
Oct 09 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服务器实现多session并发运行
2006/10/09 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
PHP CURL获取cookies模拟登录的方法
2013/11/04 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
2020/03/06 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
python状态机transitions库详解
2021/06/02 Python
Python读写yaml文件
2022/03/20 Python