"run_at": "document_end"相当于DOMContentLoaded. http://developer.chrome.com/extensions/content_scripts.html#run_at也就是说,它在staticHTML 已加载,但在缓慢的图像和缓慢的完成 JavaScript 之前。
因此,您不能仅通过单独设置清单来设置在页面 JS 之后触发的内容脚本。您必须在内容脚本本身中为此编写代码。
对于内容脚本,"run_at": "document_end"
将在onload
事件(与默认的document_idle
——它可能会在不可预测的时间触发)。
所以,第一步就是等待load
在您的内容脚本中使用类似代码的事件(searchTopic.js
):
window.addEventListener ("load", myMain, false);
function myMain (evt) {
// DO YOUR STUFF HERE.
}
如果您关心的脚本需要一段时间才能完成,您将必须根据具体情况轮询某些条件。例如:
window.addEventListener ("load", myMain, false);
function myMain (evt) {
var jsInitChecktimer = setInterval (checkForJS_Finish, 111);
function checkForJS_Finish () {
if ( typeof SOME_GLOBAL_VAR != "undefined"
|| document.querySelector ("SOME_INDICATOR_NODE_css_SELECTOR")
) {
clearInterval (jsInitChecktimer);
// DO YOUR STUFF HERE.
}
}
}