Javascript 如何从插件SDK向选项卡对象添加进度侦听器
我希望得到URL更改通知(而不是加载通知)。 有,但我不知道如何在上下文中使用,它处理选项卡Javascript 如何从插件SDK向选项卡对象添加进度侦听器,javascript,firefox-addon-sdk,Javascript,Firefox Addon Sdk,我希望得到URL更改通知(而不是加载通知)。 有,但我不知道如何在上下文中使用,它处理选项卡 如何将侦听器安装到SDK选项卡 如何从转换为SDK选项卡 相关的: 要安装侦听器,请使用viewFor将SDK选项卡转换为其原始(旧)表示形式。 modelFor和getTabForContentWindow可以进行反向转换 const tabs = require("sdk/tabs"); const {viewFor} = require('sdk/view/core'); const {mod
const tabs = require("sdk/tabs");
const {viewFor} = require('sdk/view/core');
const {modelFor} = require('sdk/model/core');
const {getBrowserForTab, getTabForContentWindow} = require("sdk/tabs/utils");
const {Ci, Cu} = require("chrome");
Cu.import("resource://gre/modules/XPCOMUtils.jsm", this);
var progressListener = {
QueryInterface: XPCOMUtils.generateQI([Ci.nsIWebProgressListener, Ci.nsISupportsWeakReference]),
onLocationChange: function(aProgress, aRequest, aURI) {
var highLevel= modelFor(getTabForContentWindow(aProgress.DOMWindow));
console.log("onLocationChange ", highLevel.url);
}
};
tabs.on('open', function(newTab) {
var lowLevel = viewFor(newTab);
var browser = getBrowserForTab(lowLevel);
browser.addProgressListener(progressListener);
});
灵感来自
[Exception…”组件返回故障代码:0x80004005(NS_ERROR_failure)[nsIWebProgress.addProgressListener]“我试图从location change函数中获取tab对象,以将内容脚本和工作程序附加到侦听器。您知道如何执行吗?示例中的高级变量包含tab对象。