阻止脚本src时添加一些HTML元素

时间:2018-10-05 08:22:15

标签: javascript

我很好奇,当某些脚本src被浏览器阻止时(例如由于隐身模式),是否可以创建一些HTML元素。考虑下面的代码,如何对其进行修改以实现它?

(function() {
  var w = window;
  var ic = w.Intercom;
  if (typeof ic === "function") {
    ic('reattach_activator');
    ic('update', intercomSettings);
  } else {
    var d = document;
    var i = function() {
      i.c(arguments)
    };
    i.q = [];
    i.c = function(args) {
      i.q.push(args)
    };
    w.Intercom = i;

    function l() {
      var s = d.createElement('script');
      s.type = 'text/javascript';
      s.async = true;
      s.src = 'https://widget.intercom.io/widget/viov7xor';
      var x = d.getElementsByTagName('script')[0];
      x.parentNode.insertBefore(s, x);
    }
    if (w.attachEvent) {
      w.attachEvent('onload', l);
    } else {
      w.addEventListener('load', l, false);
    }
  }
})()

1 个答案:

答案 0 :(得分:0)

我已经在上述代码的l函数中添加了这一行代码...现在,当发生内部通信脚本错误时,它将创建div。

s.onerror=()=>{var ierr=d.createElement('div');ierr.id='intercom-error';d.body.appendChild(ierr)};