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