gpt4 book ai didi

javascript - Greasemonkey 脚本删除特定注释之间的 HTML?

转载 作者:行者123 更新时间:2023-12-03 12:43:51 27 4
gpt4 key购买 nike

为了阻止一些我不想在加载页面时执行的 JavaScript,我想要一个 Greasemonkey 脚本来删除两个 HTML 注释标记之间的所有内容。例如:

<!-- sub script -->
Lines containing script elements to be removed
<!-- end sub script -->

我之前曾尝试使用向我建议的示例脚本删除脚本元素,但它没有按预期工作。该脚本是这样的:

var script = document.querySelectorAll('script[src*="example.com"]');
for (var i = 0, len = script.length; i < len; i++) {
script[i].parentNode.removeChild(scriptscript[i]);
}

简单地说,它并没有像我希望的那样删除脚本元素。我知道页面之间的评论元素是一致的,如果我可以使用它们作为标记来开始和结束搜索并简单地删除之间的所有内容,我相信这会解决问题。

任何指导将不胜感激。说我是 JavaScript 新手还算轻描淡写,但我学得很快。

最佳答案

您不能仅通过删除 <script> 来删除 JavaScript 脚本。其中包括它。

那是因为一旦浏览器解析 <script> ,脚本就会运行,并且无法撤消。

但在某些浏览器上,您可以在脚本运行之前阻止脚本,使用 beforescriptexecute 事件:

window.addEventListener('beforescriptexecute', function(e) {
if (~e.target.src.indexOf('example.com')) {
e.preventDefault();
}
}, true);

请注意,您的 GM 脚本必须在您要阻止的脚本之前运行,请确保使用

@run-at document-start

关于javascript - Greasemonkey 脚本删除特定注释之间的 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23413400/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com