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之bind使用介绍
Oct 09 Javascript
多个datatable共存造成多个表格的checkbox都被选中
Jul 11 Javascript
Jquery AJAX POST与GET之间的区别
Nov 14 Javascript
一个简单的jquery的多选下拉框(自写)
May 05 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
Sep 09 Javascript
JavaScript学习笔记之JS对象
Jan 22 Javascript
jQuery新窗口打开外链接
Jul 21 Javascript
Angular中$broadcast和$emit的使用方法详解
May 22 Javascript
vue3.0中的双向数据绑定方法及优缺点
Aug 01 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
Aug 28 Javascript
在layui中layer弹出层点击事件无效的解决方法
Sep 05 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
Nov 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与paypal整合方法
2010/11/28 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
Prototype Hash对象 学习
2009/07/19 Javascript
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
2011/07/28 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
Python构建图像分类识别器的方法
2019/01/12 Python
python三引号输出方法
2019/02/27 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
python cumsum函数的具体使用
2019/07/29 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
python关于调用函数外的变量实例
2019/12/26 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
国家奖学金获奖感言
2014/08/16 职场文书
2016年元旦主持词
2015/07/06 职场文书
初中班主任心得体会
2016/01/07 职场文书
高中班主任寄语
2019/06/21 职场文书
MySQL多表查询机制
2022/03/17 MySQL
「月刊Action」2022年5月号封面公开
2022/03/21 日漫
Windows 64位 安装 mysql 8.0.28 图文教程
2022/04/19 MySQL