vue-router動(dòng)態(tài)設(shè)置頁(yè)面title的實(shí)例講解
由于用Vue框架開發(fā)的應(yīng)用是SPA(單頁(yè)面應(yīng)用),采用的是路由的形式,沒(méi)有所謂的頁(yè)面,所以想讓網(wǎng)頁(yè)的標(biāo)題隨著路由的改變而改變,可以使用document.title = ×××來(lái)改變網(wǎng)頁(yè)標(biāo)題。
但是在IOS APP里這種方式不起作用,原因是在IOS webview中網(wǎng)頁(yè)標(biāo)題只加載一次,動(dòng)態(tài)改變是無(wú)效的。
解決方案是在路由切換完成之后,靜默加載一個(gè)空的iframe動(dòng)態(tài)設(shè)置title
util.js中定義setMetaTitle()函數(shù)
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' // 替換成站標(biāo)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 }
應(yīng)用入口main.js中調(diào)用setMetaTitle()函數(shù)
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文件調(diào)用
<h2 v-title="'頁(yè)面標(biāo)題'">通過(guò)指令設(shè)置頁(yè)面標(biāo)題</h2>
以上這篇vue-router動(dòng)態(tài)設(shè)置頁(yè)面title的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)表單未編輯或未保存離開彈窗提示功能
這篇文章主要介紹了vue實(shí)現(xiàn)表單未編輯或未保存離開彈窗提示功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04vue.js 圖片上傳并預(yù)覽及圖片更換功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue.js 圖片上傳并預(yù)覽及圖片更換功能,小編主要圍繞我們?nèi)粘J褂霉δ艿睦幼鲋v解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08Vue+Echarts實(shí)現(xiàn)簡(jiǎn)單折線圖
這篇文章主要為大家詳細(xì)介紹了Vue+Echarts實(shí)現(xiàn)簡(jiǎn)單折線圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Django+Vue實(shí)現(xiàn)WebSocket連接的示例代碼
這篇文章主要介紹了Django+Vue實(shí)現(xiàn)WebSocket連接的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05詳解vue路由篇(動(dòng)態(tài)路由、路由嵌套)
這篇文章主要介紹了詳解vue路由篇(動(dòng)態(tài)路由、路由嵌套),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01從Element日期組件源碼中學(xué)到的兩個(gè)工具方法技巧
這篇文章主要介紹了從Element日期組件源碼中學(xué)到的兩個(gè)工具方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08如何利用 vue實(shí)現(xiàn)鼠標(biāo)懸停時(shí)顯示元素或文本
Vue.js 是一種流行的 JavaScript 框架,可以使 Web 應(yīng)用程序的開發(fā)變得更加輕松和高效,這篇文章主要介紹了在 vue 中鼠標(biāo)懸停時(shí)顯示元素或文本,需要的朋友可以參考下2023-05-05