使用jquery删除具有特定内容的脚本标记

时间:2012-09-14 14:20:57

标签: javascript jquery

我有一个页面,我无法访问其obvius网站。我想删除带有内容的脚本html标记。现在我有这个但是没有用。我正在使用像编码一样的用户脚本!

function main(){
var def = $('script[type="text/javascript"]').html();
$('script[type="text/javascript"]').each(function() {
if (def == 'document.write("<scr"+"ipt type=\'text/javascript\' src=\'http://storing.com/javascripts/"+(new Date()).getTime()+"/3e155555e1b26c2d1ced0f645e_1_1.js\'></scr"+"ipt>")')
$('script[type="text/javascript"]').remove();
                                                    }
            }

更新:

<script type="text/javascript">document.write("<scr"+"ipt type='text/javascript' src='http://somedomain.com/javascripts/"+(new Date()).getTime()+"/3e1a0cd37f25a6e1b26c2d1ced0f645e_1_1.js'></scr"+"ipt>")</script>

这是我要删除的整个脚本...它插入了我正在删除的div现在我只是想知道是否有任何其他方法。 BUt,因为我看到唯一的东西文件的东西:)

2 个答案:

答案 0 :(得分:5)

我不相信这会有效,因为加载的脚本已经运行了。

那就是说,你可能想要这样的东西:

$('script').each(function() {
    if (this.src.substring(0, 31) === 'http://storing.com/javascripts/') {
        $(this).remove();
    }
});

根据<script>的输出,无法匹配.html()标记,因为它只返回元素的内容,而不是外部<script>元素也不是元素的属性。

答案 1 :(得分:1)

在页面中加载脚本时,浏览器会立即对其进行评估和执行。脚本执行后,脚本标记的内容无关紧要。

您可以通过解除脚本可能已加载的事件来实现您想要的功能。您要禁用哪些活动?

如果脚本位于某个域中并且您想要阻止所有流量,则可以将以下条目添加到您的hosts文件中:

127.0.0.1    storing.com

这将阻止请求到达目的地。