我有一个监听器在导航器发出请求之前阻止特定站点。
window.addEventListener('load', registerMyListener, false);
function registerMyListener() {
window.getBrowser().addTabsProgressListener(myListener);
}
var myListener = {
onStateChange:function(aBrowser,aProgress,aRequest,aFlag,aStatus) {
if ( /* check if the request is 'www.example.com' */) {
blockSite(aBrowser, aRequest.URI.host, aRequest.URI.spec);
}
}
}
这是我的问题:我转到“www.google.com”(允许的 url),页面照常加载。然后我键入“www.example.com”(被阻止的 url),blockSite 函数被执行,使用“window.stop()”停止请求并显示警报。当我重新启动 Firefox 时,它会加载“www.google.com”(请求的最后一个 url),但地址栏中会显示“www.example.com”。
我需要使用什么事件来停止“www.example.com”的请求,而 Firefox 仍在处理该请求,所以当我重新启动时,Firefox 再次请求它(而不是“www.google.com”)?
我认为问题在于当我停止请求时,因为我在 Firefox“知道我要去哪里”之前就这样做了。