在我項目的開發過程當中,遇到過在釘釘打開的vue寫的h5頁面,通過在路由切換的時候通過全局的路由鈎子函數改變 document.title
的內容失效的問題。
const routes = [
{
path: '/',
name: 'home',
meta:{
title:"title1"
},
},
{
path:'/down',
name:"down",
meta: {
title: 'title2'
},
},
]
const router = new VueRouter({
routes
})
router.beforeEach((to, from, next) => {
/* 路由發生變化修改頁面title */
if (to.meta.title) {
document.title = to.meta.title;
}
//必須有next 不然路由切換不了
next()
});
解決方法 :
經過了解,我們可以通過引入一個全局的js對象dd來設置釘釘內部的 document.title
// 1.引入js
<script src="http://g.alicdn.com/dingding/dingtalk-jsapi/2.3.0/dingtalk.open.js"></script>
//或者查看釘釘開發手冊,里面有一個包
npm install dingtalk-jsapi --save
import * as dd from 'dingtalk-jsapi'; // 此方式為整體加載,也可按需進行加載
// 2.改變title
dd.ready(function() {
dd.biz.navigation.setTitle({
title: "123",
})
})