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 相关文章推荐
页面右下角弹出提示框示例代码js版
Aug 02 Javascript
jQuery插件 selectToSelect使用方法
Oct 02 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
Apr 30 Javascript
javascript实现按回车键切换焦点
Feb 09 Javascript
JavaScript原生对象之Date对象的属性和方法详解
Mar 13 Javascript
JS实现文档加载完成后执行代码
Jul 09 Javascript
JS更改select内option属性的方法
Oct 14 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
Jan 22 Javascript
JS传值出现中文参数乱码的解决方法
Jun 30 Javascript
jQ处理xml文件和xml字符串的方法(详解)
Nov 22 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
Jun 14 Javascript
vue里input根据value改变背景色的实例
Sep 29 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
相对路径转化成绝对路径
2007/04/10 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
php在线解压ZIP文件的方法
2014/12/30 PHP
PHP中使用BigMap实例
2015/03/30 PHP
php用户登录之cookie信息安全分析
2016/05/13 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
javascript实时显示当天日期的方法
2015/05/20 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
js检测iframe是否加载完成的方法
2015/11/26 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
js实现简易拖拽的示例
2020/10/26 Javascript
批处理与python代码混合编程的方法
2016/05/19 Python
浅析python中的分片与截断序列
2016/08/09 Python
Python实现的计算器功能示例
2018/04/26 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
详解python解压压缩包的五种方法
2019/07/05 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
一套软件测试笔试题
2014/07/25 面试题
Python面试题:如何用Python来发送邮件
2016/03/15 面试题
市场营销专科应届生求职信
2013/11/24 职场文书
答谢会策划方案
2014/05/12 职场文书
119消防日活动总结
2014/08/29 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
建筑横幅标语
2014/10/09 职场文书
springboot读取nacos配置文件
2022/05/20 Java/Android