我使用侦听器和观察者在firefox中构建了一个Web过滤器。我发现当用户访问页面或为页面调用远程内容时将使用它是不可预测的。如果我在地址栏中键入地址,有时会调用侦听器,有时会调用观察者。我怎样才能获得更好的控制?是什么引发了另一个?如果我知道"驾驶"用户实际去过的页面,我可以改变我的处理方式"叫做#34;内容基于过滤决策。
听众:
var pageLoaded = {
init: function() {
var appcontent = document.getElementById("appcontent");
if(appcontent) { appcontent.addEventListener("DOMContentLoaded", pageLoaded.onPageLoad, true); }
},
onPageLoad: function(aEvent) {
// doc is document that triggered "onload" event
var doc = aEvent.originalTarget;
// do stuff here
}
观察者:
function httpObserver() { this.register(); }
httpObserver.prototype = {
observe: function(subject, topic, data) {
try{
subject.QueryInterface(Ci.nsIHttpChannel);
// do stuff here
}
}
}