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 相关文章推荐
图片按比例缩放函数
Jun 26 Javascript
jquery表格内容筛选实现思路及代码
Apr 16 Javascript
js兼容的placeholder属性详解
Aug 18 Javascript
js创建表单元素并使用submit进行提交
Aug 14 Javascript
JS使用正则表达式除去字符串中重复字符的方法
Nov 05 Javascript
JavaScript实现二维坐标点排序效果
Jul 18 Javascript
JS实现的对象去重功能示例
Jun 04 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
Jul 05 Javascript
VUE渲染后端返回含有script标签的html字符串示例
Oct 28 Javascript
小程序中的箭头函数的具体使用
Jun 19 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
Oct 27 Javascript
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 Vue.js
解决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
PHP+DBM的同学录程序(4)
2006/10/09 PHP
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
Javascript如何判断数据类型和数组类型
2016/06/22 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
浅谈$_FILES数组为空的原因
2017/02/16 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
AngularJS 支付倒计时功能实现思路
2017/06/05 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
详解JS预解析原理
2020/06/16 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
详解django中使用定时任务的方法
2018/09/27 Python
NumPy 数组使用大全
2019/04/25 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
python yield和Generator函数用法详解
2020/02/10 Python
keras 多任务多loss实例
2020/06/22 Python
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
文职个人求职信范文
2013/09/23 职场文书
小学英语课后反思
2014/04/26 职场文书
党支部特色活动方案
2014/08/20 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫