vue 百度统计 在main.js 里添加全局的router.afterEach后创建了script标签后在浏览器里看不到

router.afterEach((to, from, next) => {
  setTimeout(()=>{
    var _hmt = _hmt || [];
    (function() {
     //每次执行前,先移除上次插入的代码
     document.getElementById('baidu_tj') && document.getElementById('baidu_tj').remove();
     var hm = document.createElement("script");
     hm.src = "https://hm.baidu.com/hm.js?xxxx";
     hm.id = "baidu_tj"
     var s = document.getElementsByTagName("script")[0];
     s.parentNode.insertBefore(hm, s);
    })();
  },0);
});

clipboard.png
不应该多出一个script标签吗 为啥没有 我在自执行函数里到是congsole出script里 这算不算添加加成功了?

阅读 3.2k
2 个回答

你看这句:

var s = document.getElementsByTagName("script")[0]

第一个script标签有可能在head中啊,看看head中的第一个script是不是hm.js

ps:你为何在afterEach钩子中添加百度统计代码,全局创建一次就好。

建议放在index.html中 不要放在main.js
放在index.html中打包也不会受影响

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进