【问题标题】:Remove a script using Id使用 Id 删除脚本
【发布时间】:2020-09-01 03:52:22
【问题描述】:

我有下面的脚本,我正在嵌入和删除以嵌入下一个。但是我想通过 id 而不是 head.childNodes [head.childNodes.length - 1] 删除前一个标签。任何人都可以请帮忙。

var head = document.getElementsByTagName('head')[0];
    var tag = document.createElement('script');
    tag.type = 'text/javascript';
    tag.id = 'adobedatalayer'
    tag.textContent = "var DDO = {}; DDO.pageData = {'pageName': '" + pageLoadData.pageUrl + "'} ";
    if (this._dataLayerInjected) {
      var script = head.childNodes[head.childNodes.length - 1]; //get previous script element
      head.removeChild(script); //removing script
      head.appendChild(tag); // appending the script again
    } else {
      head.appendChild(tag);
      this._dataLayerInjected = true;
    }

【问题讨论】:

    标签: javascript typescript script-tag


    【解决方案1】:

    要不你在插入的时候保留一个对script标签的引用,然后下次运行这段代码时就可以.remove()它了?将其放在实例上,而不是保存 _dataLayerInjected 标志。你也可以用document.head代替document.getElementsByTagName('head')[0];

    // Remove previous script:
    if (this.script) {
      this.script.remove();
    }
    this.script = document.createElement('script');
    this.script.id = 'adobedatalayer'; // is this really needed?
    this.script.textContent = "var DDO = {}; DDO.pageData = {'pageName': '" + pageLoadData.pageUrl + "'} ";
    document.head.appendChild(this.script);
    

    【讨论】:

      【解决方案2】:
        var head = document.getElementsByTagName('head')[0];
          var tag = document.createElement('script');
          tag.type = 'text/javascript';
          tag.id = 'adobedatalayer';
          tag.textContent = 'var DDO = {}; DDO.pageData =' + JSON.stringify(pageinfo);
          var script = document.getElementById('adobedatalayer');
          if (script != null) {
            head.removeChild(script);
          }
          head.appendChild(tag);
      

      【讨论】:

        猜你喜欢
        • 2015-07-16
        • 2019-07-21
        • 1970-01-01
        • 2015-09-02
        • 1970-01-01
        • 2021-04-12
        • 1970-01-01
        • 2015-03-24
        • 2012-08-10
        相关资源
        最近更新 更多