在Firefox扩展中使用nsIURIContentListener的问题

时间:2009-02-27 22:20:28

标签: firefox

我正在开发一个小型扩展程序,必须将某些URL重定向到另一个站点。它工作正常,除了一种情况:如果使用“上下文菜单 - >在新标签页中打开”打开链接,当前页面将重定向到我的页面,并打开第二个选项卡,其中包含应重定向的链接。我弄错了什么?有没有更好的方法来实现我想要的目标?

var myListener =
{
    QueryInterface: function(iid)
     {
         if (iid.equals(Components.interfaces.nsIURIContentListener) ||
          iid.equals(Components.interfaces.nsISupportsWeakReference) ||
             iid.equals(Components.interfaces.nsISupports))
             return this;
         throw Components.results.NS_NOINTERFACE;
     },
     onStartURIOpen: function(aUri)
     {
            if (check_url(aUri)) {
                getBrowser().mCurrentTab.linkedBrowser.loadURI(######REDIRECT IS HERE#############);
                return true;
            }
            return false;
     },
     doContent: function(aContentType, aIsContentPreferred, aRequest, aContentHandler )
     {
           throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
     },
     canHandleContent: function(aContentType, aIsContentPreferred, aDesiredContentType)
    {
           throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
     },
     isPreferred: function(aContentType, aDesiredContentType)
    {
         try
        {
             var webNavInfo =
             Components.classes["@mozilla.org/webnavigation-info;1"]
                         .getService(Components.interfaces.nsIWebNavigationInfo);
             return webNavInfo.isTypeSupported(aContentType, null);
         }
       catch (e)
       {
             return false;
         }
     },
       GetWeakReference : function()
    {
        throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
     }
}

完整的扩展程序可在此处找到:http://github.com/bitboxer/firefox-detinyfy

1 个答案:

答案 0 :(得分:-1)

好的,我做了一些研究。胡克是一个错误的方法。我现在改变了代码。查看git以了解更多信息......