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与CSS写在同一个文件里的书写方法
Jun 02 Javascript
jquery选择器大全 全面详解jquery选择器
Mar 06 Javascript
Jquery实现自定义弹窗示例
Mar 12 Javascript
jquery实现简单Tab切换菜单效果
Jul 17 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
Jul 20 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
js实现单张图片平移切换效果
Oct 11 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
Aug 08 Javascript
小程序:授权、登录、session_key、unionId的详解
May 15 Javascript
Vue 2.0 侦听器 watch属性代码详解
Jun 19 Javascript
小程序最新获取用户昵称和头像的方法总结
Sep 23 Javascript
JS eval代码快速解密实例解析
Apr 23 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多图上传小程序代码
2011/07/17 PHP
PHP面向对象详解(三)
2015/12/07 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
JS简单的轮播的图片滚动实例
2013/06/17 Javascript
javascript:void(0)使用探讨
2013/08/27 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
微信小程序页面开发注意事项整理
2017/05/18 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
python之消除前缀重命名的方法
2018/10/21 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
Python常见数据类型转换操作示例
2019/05/08 Python
Python 音频生成器的实现示例
2019/12/24 Python
深入理解Python 多线程
2020/06/16 Python
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
ASP.NET中的身份验证有那些
2012/07/13 面试题
年级组长自我鉴定
2014/02/22 职场文书
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
作弊检讨书
2015/01/27 职场文书
地震慰问信
2015/02/14 职场文书