Mik*_*ike 13 javascript greasemonkey
我正在学习Greasemonkey,希望对网页进行一些改进.
我想我已经很好地掌握了JavaScript,但是我不明白在文档的呈现中在什么时候执行Greasemonkey用户脚本.
例如,如果文档中本身存在JavaScript,则会向页面插入一些元素.我希望我的Greasemonkey脚本只在JS完成后运行.
假设这是我试图用Greasemonkey修改的文档
<html>
<script>
//insert a button with id="mybutton"
</script>
</html>
Run Code Online (Sandbox Code Playgroud)
我想在<script>运行Greasemonkey脚本之前完成代码,因为我想改变它的背景颜色.
Bro*_*ams 24
默认情况下,Greasemonkey 在DOMContentLoaded事件中运行.这意味着一切都将在页面中,除了可能的大图像和一些javascripts(触发load事件的脚本或AJAX-in内容)添加的东西.
如果您想等到加载大型媒体并运行"onload"脚本,请使用:
window.addEventListener ("load", Greasemonkey_main, false);
function Greasemonkey_main () {
//***** PUT YOUR GREASEMONKEY CODE HERE.
}
Run Code Online (Sandbox Code Playgroud)
不要使用 unsafeWindow.onload = function(){ ... }或window.onload = function() { /* logic here */ }正如其他人所建议的那样. 这些不仅是糟糕的做法/不会在通用汽车公司工作,但unsafeWindow在这种情况下是不必要的安全风险.
由于您表示您关注的节点是通过javascript添加的,因此等待该load事件通常不起作用.JS可以随时添加,删除或编辑节点.
在这种情况下,最好的方法是轮询您感兴趣的元素("#mybutton").请参阅"关于AJAX请求的Fire Greasemonkey脚本"的答案.
| 归档时间: |
|
| 查看次数: |
10995 次 |
| 最近记录: |