删除src匹配上的动态脚本标记

时间:2015-11-02 13:46:33

标签: javascript jquery html regex

我的网页在我的本地计算机上工作正常,但当它移动到服务器时,谷歌的广告脚本会覆盖页面图像src。 我想找到该src的特定脚本标签并将其删除。我知道url,但无法添加id或修改DOM。请帮忙。

例如:

<script src="one.js"><script>
<script src="two.js"><script>
<script src="three.js"><script>

所以,如果

var scripts = document.getElementsByTagName ( "script" );
var l = scripts.length;
for ( var i = 0; i < l; ++ i ) {
    if ( scripts[i].src ="one.js") {
        //remove that particular script tag with one.js
    }
}

2 个答案:

答案 0 :(得分:1)

正如保罗在评论中所说,删除已经加载的脚本不会做任何改变。但是,为了它:

$('script[src*="one.js"]').remove();

使用jQuery(因为此问题已标记)。

修改:有关属性选择器的更多信息(例如*="string"),请read here

答案 1 :(得分:0)

不是每个人说的答案,但我仍然有一种直觉,我应该发布这个解决方法。

因此,如果我是你,也许我会尝试通过创建脚本干扰的假元素集来捕获脚本,然后验证相应数据是否已更改广告然后删除该div。

更好地逐步解释。

  1. 在我们关注的div之前介绍一个类似Dom的假div。现在,如果有两个具有相同Id的div,那么该脚本将以该id为目标第一个div。

  2. 您检查我们的特洛伊木马div的内容是否已更改,如果是,则将其从Dom中删除。

  3. 现在执行你的脚本。

  4. 此外,作为对策,只需删除委派给该div的所有事件。如果流氓脚本基于jquery,甚至更好,因为您可以使用.off()函数删除相应的事件并绑定您自己的事件。如下图所示..

    $("#xyz").off().on('click', function(){});

相关问题