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 相关文章推荐
javascript 动态添加表格行
Jun 22 Javascript
Javascript 文件夹选择框的两种解决方案
Jul 01 Javascript
基于jQuery实现模拟页面加载进度条
Apr 01 Javascript
深入理解JS中的变量及作用域、undefined与null
Mar 04 Javascript
jQuery操作cookie方法实例教程
Nov 25 Javascript
jquery实现触发时更新下拉列表内容的方法
Dec 02 Javascript
jQuery简单注册和禁用全局事件的方法
Jul 25 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
Nov 20 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
Aug 09 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
Jul 25 Javascript
JS实现使用POST方式发送请求
Aug 30 Javascript
vue将文件/图片批量打包下载zip的教程
Oct 21 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
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
PHP goto语句用法实例
2019/08/06 PHP
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
详解Python中的__new__()方法的使用
2015/04/09 Python
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
详解python中的数据类型和控制流
2019/08/08 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
国际政治个人自荐信范文
2013/11/26 职场文书
求职信模板怎么做
2014/01/26 职场文书
学习标兵获奖感言
2014/02/20 职场文书
安全标语大全
2014/06/10 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书
python实现语音常用度量方法的代码详解
2021/05/25 Python
Python之matplotlib绘制饼图
2022/04/13 Python