如何在Firefox扩展中更改HTTP响应正文?我已经使用下面的代码设置了一个http-on-examine-response观察者和一个nsIStreamListener对象.在我获取数据,解析并更改它之后,如何将更改的响应推送回firefox浏览器?例如,假设我在启用扩展程序的情况下访问Google.com,扩展程序应截取响应并将"google"的每次更改更改为"goggle".因此,当页面加载时,用户将在任何地方看到"goggle".
function TmSteroidsObserver()
{
this.register();
}
TmSteroidsObserver.prototype = {
observe: function(subject, topic, data) {
if (topic == "http-on-examine-response") {
}
else if (topic == "http-on-modify-request") {
var channel = subject.QueryInterface(Components.interfaces.nsIChannel);
var listener = new StreamListener(channel);
}
},
register: function() {
var observerService = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
observerService.addObserver(listener, "http-on-modify-request", false);
observerService.addObserver(listener, "http-on-examine-response", false);
},
unregister: function() {
var observerService = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
observerService.removeObserver(this, "http-on-modify-request");
observerService.removeObserver(this, "http-on-examine-response");
},
QueryInterface : function(aIID) {
if (aIID.equals(Components.interfaces.nsISupports) ||
aIID.equals(Components.interfaces.nsIObserver))
return this;
throw Components.results.NS_NOINTERFACE;
}
}
function …Run Code Online (Sandbox Code Playgroud) 我们需要从客户端的浏览器访问服务器公钥(或证书).当我访问HTTPS端时,浏览器下载服务器证书.我们需要获取此证书(或公钥)以在客户端(JavaScript)的代码中使用它,并执行一些加密操作.我们正在寻找没有针对浏览器(IE,Firefox,Chrome)进行插件开发的解决方案.
例如,是否存在某些特定于浏览器的扩展(JavaScript可以检测使用过的浏览器并调用访问证书的浏览器特定JavaScript方法),这可以帮助我们在客户端读取服务器证书?
这个链接是http://social.msdn.microsoft.com/Forums/ie/en-US/b4ffc420-4a7e-450d-90fe-2df60fb25e8d/accessing-the-ssl-server-certificate-of-a-webpage我们是什么可以在IE中使用吗?如果是,如何使用它?