我想收到 URL 更改通知(不是加载通知)。 有 an API , 但我不明白如何在 Addon SDK 的上下文中使用,处理标签 in its own way .
- 如何为 SDK 选项卡安装监听器?
- 如何转换nsiDOMWindow来自 a progress object到 SDK 选项卡?
相关:
最佳答案
要安装监听器,请使用 viewFor 将 SDK 选项卡转换为其原始(旧)表示。 可以使用 modelFor 和 getTabForContentWindow 进行反向转换。
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);
});
关于javascript - 如何从 Addon SDK 将进度监听器添加到选项卡对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29326754/