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 相关文章推荐
判断iframe是否加载完成的完美方法
Jan 07 Javascript
js读取本地excel文档数据的代码
Nov 11 Javascript
用Jquery.load载入页面实现局部刷新
Jan 22 Javascript
Jquery搜索父元素操作方法
Feb 10 Javascript
自定义刻度jQuery进度条及插件
Sep 02 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
Oct 26 Javascript
JavaScript阻止回车提交表单的方法
Dec 30 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
Jan 04 Javascript
AngularJS之自定义服务详解(factory、service、provider)
Apr 14 Javascript
vue在使用ECharts时的异步更新和数据加载详解
Nov 22 Javascript
json数据传到前台并解析展示成列表的方法
Aug 06 Javascript
对Vue beforeRouteEnter 的next执行时机详解
Aug 25 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 ImageMagick windows下安装教程
2015/01/26 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
JavaScript 继承的实现
2009/07/09 Javascript
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
2017/01/22 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
AngularJS中controller控制器继承的使用方法
2017/11/03 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
python 正则式使用心得
2009/05/07 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
python实现弹窗祝福效果
2019/04/07 Python
Python编写带选项的命令行程序方法
2019/08/13 Python
Python使用re模块验证危险字符
2020/05/21 Python
python 如何引入协程和原理分析
2020/11/30 Python
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
自动化专业本科毕业生求职信
2013/10/20 职场文书
社会实践感言
2014/01/25 职场文书
2014年幼儿园国庆主题活动方案
2014/09/16 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
电影地道战观后感
2015/06/04 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS