动态添加meta和title

vue动态设置title和meta标签

1.在router.js中添加meta  在main.js中监听路由的变化改变页面head中的标签  代码如下:

router.js 
path: "/transfer/detail/:id",
          name: "transfer/detail",
          meta: {
            title: "转店详情",
            name: "xxx转店",
            content: "xxx转店,租金xx元/月"
          },
          component: () =>
            import(/* webpackChunkName: "TransferShopDetails" */ "@/views/TransferShopDetails.vue")
}
main.js
router.beforeEach((_to, _from, next) => {
  if (_to.meta.content || _to.meta.name) {
    let head = document.getElementsByTagName("head");
    let meta = document.createElement("meta");
    meta.content = _to.meta.content;
    meta.content = _to.meta.name;
    head[0].appendChild(meta);
  }
  /* 路由发生变化修改页面title */
  if (_to.meta.title) {
    document.title = _to.meta.title;
  }
  next();
});
2.window.open中打开新页面,找了半天自恋也没有发现简单高效的方法, 于是直接在跳转的页面组件内修改meta和title,多个页面需要些多次方法,代码如下:
document.title = this.detailsData.title;
      let meta = document.getElementsByTagName("meta");
      let meta1;
      let meta2;
      for (let i in meta) {
        if (meta[i].name === "Keywords") {
          meta1 = meta[i];
        }
        if (meta[i].name === "Description") {
          meta2 = meta[i];
        }
      }
      meta1.content =
        this.detailsData.bigDistrictName +
        this.detailsData.smallDistrictName +
        "商铺出租,租金" +
        this.detailsData.rent +
        this.detailsData.rentShowUnit +
        ",面积" +
        this.detailsData.area +
        "m²,无转让费";
      meta2.content = this.detailsData.suitIndustry;
如果有更高效简洁的动态修改方法的话  敬请留言  共同学习
 
posted @ 2019-09-06 14:49  任九  阅读(3336)  评论(1编辑  收藏  举报