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和CSS速查手册
Aug 20 Javascript
最短的javascript:地址栏载入脚本代码
Oct 13 Javascript
JavaScript中的this关键字介绍与使用实例
Jun 21 Javascript
jQuery实现的图片分组切换焦点图插件
Jan 06 Javascript
javascript添加前置0(补零)的几种方法
Jan 05 Javascript
vue实现导航栏效果(选中状态刷新不消失)
Dec 13 Javascript
js中的 || 与 &amp;&amp; 运算符详解
May 24 Javascript
JS实现图片切换效果
Nov 17 Javascript
VUE+Element环境搭建与安装的方法步骤
Jan 24 Javascript
javascript for循环性能测试示例
Aug 07 Javascript
实现vuex与组件data之间的数据同步更新方式
Nov 12 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
Aug 05 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
linux下删除7天前日志的代码(php+shell)
2011/01/02 PHP
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
JavaScript 学习笔记之数据类型
2015/01/14 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
python遍历数组的方法小结
2015/04/30 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
2017/07/06 Python
python实现统计代码行数的小工具
2019/09/19 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
Python如何用filter函数筛选数据
2020/03/05 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
毕业生自荐信格式
2014/03/07 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
公司离职证明标准格式
2014/11/18 职场文书
护理专业自我评价
2015/03/11 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
通知范文怎么写
2015/04/16 职场文书
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技
如何设置多台电脑共享打印机?多台电脑共享打印机的方法
2022/04/08 数码科技