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 分号引起的一段调试问题
Jun 18 Javascript
javascript学习笔记(五)正则表达式
Apr 08 Javascript
Node.js实战 建立简单的Web服务器
Mar 08 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
Nov 19 Javascript
javascript函数中参数传递问题示例探讨
Jul 31 Javascript
javascript实现获取浏览器版本、操作系统类型
Jan 29 Javascript
js全选实现和判断是否有复选框选中的方法
Feb 17 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
Feb 13 Javascript
jQuery滚动监听实现商城楼梯式导航效果
Mar 06 Javascript
jQuery zTree 异步加载添加子节点重复问题
Nov 29 jQuery
微信小程序实战篇之购物车的实现代码示例
Nov 30 Javascript
浅谈JS的原型和继承
May 08 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
apache mysql php 源码编译使用方法
2012/05/03 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
ThinkPHP中ajax使用实例教程
2014/08/22 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
php读取本地json文件的实例
2018/03/07 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
div层的移动及性能优化
2010/11/16 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
详谈javascript异步编程
2016/02/21 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
uin-app+mockjs实现本地数据模拟
2020/08/26 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
pandas string转dataframe的方法
2018/04/11 Python
python numpy格式化打印的实例
2018/05/14 Python
Python 寻找局部最高点的实现
2019/12/05 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
会计主管岗位职责
2014/01/03 职场文书
网络事业创业计划书范文
2014/01/09 职场文书
大三毕业自我鉴定
2014/01/15 职场文书
税务会计岗位职责
2014/02/18 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
修改并编译golang源码的操作步骤
2021/07/25 Golang
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python