在请求发送到网站之前,有没有办法获取url字符串?我在这里找到了一篇关于它的帖子:
https://forums.mozilla.org/addons/viewtopic.php?f=7&t=11259&p=26111
但我在addon SDK中找不到任何关于如何“挂钩浏览器:OpenLocation命令”的内容。
基本上我正在做的是:
因此我在页面开始加载后无法检查网址,因为请求已经发送,我宁愿不重新加载页面,因为它会延迟浏览。
谢谢!
答案 0 :(得分:1)
是的,请查看以下文档: https://developer.mozilla.org/en-US/docs/XUL/School_tutorial/Intercepting_Page_Loads#HTTP_Observers
此代码适用于附加组件sdk,它会检查网址是否与mysite
匹配,然后为该网站设置MyBrowser/1.0
用户代理。这仅在检测到时才进行更改,而不是使用pref userAgent.orverride。
var chrome = require("chrome");
chrome.Cc["@mozilla.org/observer-service;1"].getService( chrome.Ci.nsIObserverService ).addObserver({
observe : function(subject, topic, data) {
var channel = subject.QueryInterface( chrome.Ci.nsIHttpChannel );
if ( /mysite/.test( channel.originalURI.host ) ) {
channel.setRequestHeader("User-Agent", "MyBrowser/1.0", false);
}
}
},"http-on-modify-request",false);