2012-09-14 56 views
1

我有一个页面,我没有访问它的obvius网站。我想删除一个带有内容的脚本html标签。现在我有这个,但不工作。我正在使用像编码这样的用户脚本!使用jquery删除特定内容的脚本标记

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(); 
                } 
      } 

UPDATE:

<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

如果该脚本已经加载,那么几乎可以肯定为时已晚,无法阻止它应该对页面执行的任何操作。 – Alnitak

+0

你能解释为什么你想删除脚本吗?也许我们可以帮忙解决... – Ian

回答

5

我不认为这将工作,因为加载的脚本已经运行。

这就是说,你可能想是这样的:

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

这是不可能的基础上,.html()输出的<script>标签匹配,因为只有返回内容元素的,而不是外<script>元素也不是元素的属性。

1

当脚本加载到页面中时,浏览器立即评估并执行该脚本。脚本执行后,脚本标记的内容是不相关的。

您可以通过解除脚本可能已加载的事件来实现您想要的功能。是否有任何要禁用的事件?

如果脚本是在一定的领域,你想阻止所有的流量,你可以在下面的条目添加到您的主机文件:

127.0.0.1 storing.com 

这将防止到达它的目的地的请求。