当用户访问特定站点时,Firefox会自动重定向

Firefox automatic redirect when user visits specific site

本文关键字:Firefox 重定向 访问 用户 站点      更新时间:2023-09-26

我正在编写一个firefox扩展,当用户访问预定义站点的主页时,他们将自动重定向到同一站点的不同页面。问题是,它创建了一个重定向循环,因为它重定向了特定网站上的每个页面,而不仅仅是主页。我只想在用户访问主页时重定向,而不是每次他们访问同一网站的任何页面。

var myExt_urlBarListener = {
QueryInterface: function(aIID)
{
if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
       aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
       aIID.equals(Components.interfaces.nsISupports))
     return this;
   throw Components.results.NS_NOINTERFACE;
  },
  onLocationChange: function(aProgress, aRequest, aURI)
  {
    myExtension.processNewURL(aURI);
  },
  onStateChange: function(a, b, c, d) {},
  onProgressChange: function(a, b, c, d, e, f) {},
  onStatusChange: function(a, b, c, d) {},
  onSecurityChange: function(a, b, c) {}
};
var myExtension = {
  oldURL: null,
  init: function() {
    // Listen for webpage loads
    gBrowser.addProgressListener(myExt_urlBarListener,
    Components.interfaces.nsIWebProgress.NOTIFY_LOCATION);
  },
  uninit: function() {
    gBrowser.removeProgressListener(myExt_urlBarListener);
  },
  processNewURL: function(aURI) {
    if (aURI.spec == this.oldURL)
      return;
    // now we know the url is new...
    //alert(aURI.spec);
    if(aURI.spec.search("www.examplesite.com") > -1){ 
        gBrowser.contentDocument.location.href = "http://www.examplesite.com/page1";
    }
    this.oldURL = aURI.spec;
  }
};
window.addEventListener("load", function() {myExtension.init()}, false);
window.addEventListener("unload", function() {myExtension.uninit()}, false);

当然这只是一个改变if(aURI.spec.search("www.examplesite.com") > -1){的问题,这样你就可以比较实际的特定URL…?