【发布时间】:2012-10-05 12:49:42
【问题描述】:
我正在编写一个 Greasemonkey 用户脚本,并希望在页面完全加载完成时执行特定代码,因为它返回我想要显示的 div 计数。
问题是,这个特定页面有时需要一些时间才能加载所有内容。
我已经尝试过,记录 $(function() { }); 和 $(window).load(function(){ }); 包装器。但是,似乎没有一个对我有用,尽管我可能会错误地应用它们。
我能做的最好的就是使用setTimeout(function() { }, 600);,虽然它并不总是可靠的。
在 Greasemonkey 中使用什么技术来确保在页面完成加载时执行特定代码的最佳技术是什么?
【问题讨论】:
-
您可以使用
(function init(){var counter = document.getElementById('id-of-element');if (counter) { /* do something with counter element */ } else { setTimeout(init, 0);}})();不断轮询元素是否存在。这是最通用的解决方案。 -
Greasemonkey 的表亲 Tampermonkey 和 Scriptish 支持更多的
@run-at值,其中包括可能有用的document-idle和context-menu。似乎 Greasemonkey 是 adding support 对应于document-idle,尽管它尚未被记录在案。 -
@RobW 对我有用,谢谢。
标签: javascript jquery greasemonkey tampermonkey