如何在地址栏(也称为位置栏)中的 URL 更改时收到通知。使用以下代码,我尝试在用户导航到另一个页面时(通过单击链接、使用后退/前进按钮、通过在位置栏中输入地址等)以及用户切换选项卡时获得通知。
var myExtension = {
oldURL: null,
init: function() {
gBrowser.addProgressListener(this);
},
uninit: function() {
gBrowser.removeProgressListener(this);
},
processNewURL: function(aURI) {
if (aURI.spec == this.oldURL) return;
// now we know the url is new...
alert(aURI.spec);
this.oldURL = aURI.spec;
},
// nsIWebProgressListener
QueryInterface: XPCOMUtils.generateQI(["nsIWebProgressListener",
"nsISupportsWeakReference"]),
onLocationChange: function(aProgress, aRequest, aURI) {
this.processNewURL(aURI);
},
onStateChange: function() {},
onProgressChange: function() {},
onStatusChange: function() {},
onSecurityChange: function() {}
};
};
window.addEventListener("load", function() { myExtension.init() }, false);
window.addEventListener("unload", function() { myExtension.uninit() }, false);
但是这段代码在 XPCOMUtils 和 window.I 上得到了参考错误。我在 firefox Add-on Builder 上开发这段代码。有什么需要导入的吗???