Javascript onProgressChange不提供Firefox扩展中页面加载的完整进度
我正在firefox扩展中使用tabsProgressListener的onProgressChange回调。 我使用这个回调来跟踪页面加载的进度,这样我就可以使用这些信息将我的contentscripts注入到页面中 但是,有时progressListener并不总是给出完成状态 我不能使用本文中提到的onPageLoad示例 因为我需要选项卡上的句柄来独立跟踪和加载脚本,即使在切换选项卡时也是如此 我不清楚为什么会发生这种情况。请帮忙 如果在onPageLoad中有任何其他方法可以做到这一点,我可以访问选项卡并独立跟踪脚本,甚至在切换选项卡时也可以将脚本注入到每个选项卡中 以下是我实现的代码片段:Javascript onProgressChange不提供Firefox扩展中页面加载的完整进度,javascript,firefox,firefox-addon,xul,Javascript,Firefox,Firefox Addon,Xul,我正在firefox扩展中使用tabsProgressListener的onProgressChange回调。 我使用这个回调来跟踪页面加载的进度,这样我就可以使用这些信息将我的contentscripts注入到页面中 但是,有时progressListener并不总是给出完成状态 我不能使用本文中提到的onPageLoad示例 因为我需要选项卡上的句柄来独立跟踪和加载脚本,即使在切换选项卡时也是如此 我不清楚为什么会发生这种情况。请帮忙 如果在onPageLoad中有任何其他方法可以做到这一点
var tabsProgressListener = {
onProgressChange: function( aBrowser,
aWebProgress,
aRequest,
aCurSelfProgress,
aMaxSelfProgress,
aCurTotalProgress,
aMaxTotalProgress
) {
Components.utils.reportError("onProgressChange: " + aCurTotalProgress + "/" + aMaxTotalProgress);
if(aCurTotalProgress === aMaxTotalProgress) {
onPageLoad(aBrowser);
}
}
};
gBrowser.addTabsProgressListener(tabsProgressListener);
function onPageLoad(context) {
var loader = Components.classes[ "@mozilla.org/moz/jssubscript-loader;1" ]
.getService( Components.interfaces.mozIJSSubScriptLoader );
loader.loadSubScript("chrome://signonex/content/script1.js", context);
loader.loadSubScript("chrome://signonex/content/script2.js", context);
loader.loadSubScript("chrome://signonex/content/script3.js", context);
}
使用选项卡进度侦听器时,可以使用 我不太明白为什么不能使用
DOMContentLoaded
。。。有一些API可以将事件映射回窗口(event.originalTarget.defaultView
)和/或文档(event.originalTarget.ownerDocument
)
还有你的朋友和朋友。谢谢。我能够使用onStateChange使其正常工作。:)