Vue单独修改某个界面的title

**

为每一个界面设置title 即使用vue-router设置每个页面的title

**
使用vue-router设置每个页面的title:步骤如下

  • 进入 router 文件夹底下的index.js文件 引入:
import Vue from 'vue'
import Router from 'vue-router'
  • 然后在路由里面写路由的时候配置每个路由的地址 meta中 title:
 routes: [
    {          /* (首页)默认路由地址 */
      path: '/',
      name: 'Entrance',
      component: Entrance,
      meta: {
        title: '首页入口'
      }
    }
    ]
  • 在main.js 界面中引入
router.beforeEach((to, from, next) => {
  /* 路由发生变化修改页面title */
  if (to.meta.title) {
    document.title = to.meta.title
  }
  next()
})

完工!这样,每个界面现实的标题就是路有种title里面的字体;

以上是正常标题的写法,那么现在问题来了 ,如果项目中有一个界面要用该页面的返回数据作为标题,该怎么破呢?

在created或mounted 里添加 document.title=‘标题’即可

(1)pc 端完全可以 ,木有问题;
(2)移动端及微信里面的 会有问题;显示不出来 未修改!然后用下面方法解决:

在created中放入以下代码,如果设置的标题是该页面后台接口返回的数据,即放在得到数据之后!

document.title = '设置标题HTTP';  
        const iframe = document.createElement('iframe');  
        iframe.style.cssText = 'display: none; width: 0; height: 0;';  
        iframe.src = 'http://desk.fd.zol-img.com.cn/t_s960x600c5/g5/M00/05/0F/ChMkJ1erCriIJ_opAAY8rSwt72wAAUU6gMmHKwABjzF444.jpg';  
        //iframe.src = require('./img/text_delete.png');  
  
        const listener = () => {  
            setTimeout(() => {  
                iframe.removeEventListener('load', listener);  
                setTimeout(() => {  
                    document.body.removeChild(iframe);  
                }, 0);  
            }, 0);  
        };  
        iframe.addEventListener('load', listener);  
        document.body.appendChild(iframe); 

完事,大功告成!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值