我需要删除脚本标记(<script>...</script>
)的内容和/或其src属性。以此为例:
<script type="text/javascript">
var adfly_id = 2776246;
</script>
<script src="https://cdn.adf.ly/js/display.js"></script>
我已尝试过此代码:
jQuery(document).ready(function($){
$('script').each(function() {
if (this.src === 'https://cdn.adf.ly/js/display.js') {
$(this).remove();
}
});
});
但是没有成功(我在WP中使用该代码 - 如果有人问为什么jQuery语法),可以给我一些建议吗?
编辑:这里的想法是删除脚本以防止其执行
答案 0 :(得分:4)
这似乎有效:
jQuery(document).ready(function($){
$('script').each(function() {
if (this.src === 'URL_HERE') {
this.parentNode.removeChild( this );
}
});
});
答案 1 :(得分:0)
您不能删除我认为的脚本代码,但我相信您可以删除脚本代码中的src属性,如果您删除了$(this).attr('src');
答案 2 :(得分:0)
尝试
$(document).ready(function(){
$('script').each(function() {
var obj = $(this);
if (obj.attr("src") == 'https://cdn.adf.ly/js/display.js') {
obj.attr("src","");
}
});
});
答案 3 :(得分:0)
您可以破解它。使用另一个脚本来执行...。
node.parentNode.replaceChild(
document.createComment(node.outerHTML.slice(1,-1)
.replace(/--/g, '\\-\\-')), node);
其中节点是您的脚本节点/元素。替换双破折号是为了防止浏览器抱怨不兼容的注释标记。
然后,如果要启用它,只需做相反的注释。替换并用<和>括起来。但是您可能需要跟踪修改后的脚本节点,因为修改后的脚本节点将成为注释,因此查询较少。
请记住,脚本是在早期加载的,因此您的删除代码应位于要删除的节点之前。我使用了成功的突变观察器,该观察器从头开始,它监视添加的脚本节点并立即将其禁用。然后,我分析了脚本节点代码(既是内容,又是
XMLHttpRequest
-src
(如果存在)。然后,一旦我熟悉了它,我将通过执行反向禁用操作来重新启用它,方法是创建代码片段,然后注入原始的outerHTML
,无论是否经过修改。