vue-router动态设置页面title的实例讲解


Posted in Javascript onAugust 30, 2018

由于用Vue框架开发的应用是SPA(单页面应用),采用的是路由的形式,没有所谓的页面,所以想让网页的标题随着路由的改变而改变,可以使用document.title = ×××来改变网页标题。

但是在IOS APP里这种方式不起作用,原因是在IOS webview中网页标题只加载一次,动态改变是无效的。

解决方案是在路由切换完成之后,静默加载一个空的iframe动态设置title

util.js中定义setMetaTitle()函数

function setMetaTitle(title) {
 document.title = title
 let mobile = navigator.userAgent.toLowerCase()
 if (/iphone|ipad|ipod/.test(mobile)) {
  let iframe = document.createElement('iframe')
  iframe.style.display = 'none'
  // 替换成站标favicon路径或者任意存在的较小的图片即可
  iframe.setAttribute('src', 'static/img/blank.png')
  let iframeCallback = function () {
   setTimeout(function () {
    iframe.removeEventListener('load', iframeCallback)
    document.body.removeChild(iframe)
   }, 0)
  }
  iframe.addEventListener('load', iframeCallback)
  document.body.appendChild(iframe)
 }
}
 
 
export {
 setMetaTitle
}

应用入口main.js中调用setMetaTitle()函数

import Vue from 'vue'
import VueRouter from 'vue-router'
import VueResource from 'vue-resource'
import routes from './router/router.js'
import filter from './utils/filter.js'
import { setMetaTitle } from './utils/util.js'
import App from './App.vue'
 
Vue.use(VueRouter)
Vue.use(VueResource)
 
Vue.directive('title', {
 inserted: function (el, binding) {
  setMetaTitle(binding.value)
 }
})
 
Object.keys(filter).forEach(function(k) {
 Vue.filter(k, filter[k]);
});
 
const router = new VueRouter({
 routes: routes
})
 
new Vue({
 router: router,
 render: h => h(App)
}).$mount('#app')

vue文件调用

<h2 v-title="'页面标题'">通过指令设置页面标题</h2>

以上这篇vue-router动态设置页面title的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
多广告投放代码 推荐
Nov 13 Javascript
JS对URL字符串进行编码/解码分析
Oct 25 Javascript
JQuery通过Ajax提交表单并返回结果
Jul 31 Javascript
js验证IP及子网掩码的合法性有效性示例
Apr 30 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
Aug 22 Javascript
浅谈js数据类型判断与数组判断
Aug 29 Javascript
Angular2从搭建环境到开发步骤详解
Oct 17 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
Apr 03 jQuery
微信小程序 Animation实现图片旋转动画示例
Aug 22 Javascript
JavaScript array常用方法代码实例详解
Sep 02 Javascript
关于JavaScript数组去重的一些理解汇总
Sep 10 Javascript
微信小程序实现简单购物车功能
Dec 30 Javascript
解决vue select当前value没有更新到vue对象属性的问题
Aug 30 #Javascript
微信小程序使用wxParse解析html的实现示例
Aug 30 #Javascript
vue中rem的配置的方法示例
Aug 30 #Javascript
Vue2实时监听表单变化的示例讲解
Aug 30 #Javascript
vue-swiper的使用教程
Aug 30 #Javascript
分享vue里swiper的一些坑
Aug 30 #Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 #Javascript
You might like
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
Chrome扩展页面动态绑定JS事件提示错误
2014/02/11 Javascript
使用ajax+jqtransform实现动态加载select
2014/12/01 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
深入理解js promise chain
2016/05/05 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
vue自定义全局组件(自定义插件)的用法
2018/01/30 Javascript
详解Node 定时器
2018/02/26 Javascript
微信小程序云开发之使用云函数
2019/05/17 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python中的ctime()方法使用教程
2015/05/22 Python
pygame实现弹力球及其变速效果
2017/07/03 Python
python实现装饰器、描述符
2018/02/28 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
纽约和芝加哥当天送花:Ode à la Rose
2019/07/05 全球购物
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
手术室护士自我鉴定
2013/10/14 职场文书
医院总经理岗位职责
2014/02/04 职场文书
2014年元旦活动方案
2014/02/15 职场文书
《再见了,亲人》教学反思
2014/02/26 职场文书
个人授权委托书格式
2014/08/30 职场文书
公司合并协议书范本
2014/09/30 职场文书
委托公证书样本
2015/01/23 职场文书
如何用python插入独创性声明
2021/03/31 Python
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫