gpt4 book ai didi

javascript - 了解 Greasemonkey 如何运行用户脚本

转载 作者:可可西里 更新时间:2023-11-01 01:48:34 26 4
gpt4 key购买 nike

我正在学习 Greasemonkey,希望能改进网页。

我认为我对 JavaScript 有很好的掌握,但我不明白 Greasemonkey 用户脚本在文档呈现的哪个点执行。

例如,如果文档中原生有 JavaScript 将一些元素插入到页面中会怎么样。我希望我的 Greasemonkey 脚本仅在该 JS 完成后运行。

假设这是我试图用 Greasemonkey 修改的文档

<html>
<script>
//insert a button with id="mybutton"
</script>
</html>

我想要 <script>代码在我的 Greasemonkey 脚本运行之前完成,因为我想改变它的背景颜色。

最佳答案

油猴 runs at the DOMContentLoaded event默认。这意味着除了可能 大图像和某些 javascript 添加的内容(在 load 事件或 AJAX-in 内容上触发的脚本)之外,所有内容都将显示在页面中。

如果您想等到大型媒体加载完毕并且“onload”脚本运行完毕,请使用:

window.addEventListener ("load", Greasemonkey_main, false);

function Greasemonkey_main () {

//***** PUT YOUR GREASEMONKEY CODE HERE.
}

不要使用 unsafeWindow.onload = function(){ ... }window.onload = function() {/* 逻辑在这里 */ 正如其他人所建议的那样。 These are not only poor practice/won't work in GM , 但 unsafeWindow 在这种情况下是一个不必要的安全风险。



然而,处理JS添加的内容:

既然你表明你关心的节点是javascript添加的,那么等待load事件往往是行不通的。 JS 可以随时添加、删除或编辑节点。

在这种情况下,最好的方法是轮询您感兴趣的元素 ("#mybutton")。参见 this answer to "Fire Greasemonkey script on AJAX request" .

关于javascript - 了解 Greasemonkey 如何运行用户脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8772137/

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