“替代”的方法是什么;“远程地址”;FireFox中的头文件?
在谷歌浏览器中有一个标题叫做“远程地址”。 我正在为Firefox编写一个插件,我需要根据远程主机来决定一些事情,但Firefox中似乎没有这样的头。 如果您知道如何从observer对象访问远程主机,请告诉我“替代”的方法是什么;“远程地址”;FireFox中的头文件?,firefox,google-chrome-extension,firefox-addon,firefox-addon-sdk,browser-addons,Firefox,Google Chrome Extension,Firefox Addon,Firefox Addon Sdk,Browser Addons,在谷歌浏览器中有一个标题叫做“远程地址”。 我正在为Firefox编写一个插件,我需要根据远程主机来决定一些事情,但Firefox中似乎没有这样的头。 如果您知道如何从observer对象访问远程主机,请告诉我 observe : function(aSubject, aTopic, aData) { //I need remote host here } 她是谷歌chrome中标题的屏幕截图 如果标题不在那里,它会抛出异常NS\u ERROR\u not\u AVAILABLE va
observe : function(aSubject, aTopic, aData) {
//I need remote host here
}
她是谷歌chrome中标题的屏幕截图
如果标题不在那里,它会抛出异常
NS\u ERROR\u not\u AVAILABLE
var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
Cu.import('resource://gre/modules/Services.jsm');
var httpRequestObserver =
{
observe: function(subject, topic, data)
{
var httpChannel, requestURL;
httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
requestURL = httpChannel.URI.spec;
if (topic == "http-on-modify-request") {
//if (requestURL.indexOf('google.com') > -1) {
//httpChannel.setRequestHeader('MyCustomRequestHeader', 'hiiii', false);
try {
var Host = httpChannel.getRequestHeader('Host');
} catch (ex) {
var Host = 'NULL';
}
console.log('REQUEST Header "Host" = ' + Host);
//}
} else if (topic == "http-on-examine-response") {
try {
var Host = httpChannel.getResponseHeader('Host');
} catch (ex) {
var Host = 'NULL';
}
console.log('RESPONSE Header "Host" = ' + Host);
}
}
};
Services.obs.addObserver(httpRequestObserver, "http-on-modify-request", false);
Services.obs.addObserver(httpRequestObserver, "http-on-examine-response", false);
//Services.obs.removeObserver(httpRequestObserver, "http-on-modify-request", false); //run this on shudown of your addon otherwise the observer stags registerd
//Services.obs.removeObserver(httpRequestObserver, "http-on-examine-response", false); //run this on shudown of your addon otherwise the observer stags registerd
用于制作此代码段的有用文章: