2009-02-27 6 views
1

特定のURLを別のサイトにリダイレクトする必要がある小さな拡張機能を開発しています。 1つの状況を除いてうまくいきます:「コンテキストメニュー - >新しいタブで開く」とリンクを開くと、現在のページが自分のページにリダイレクトされ、2番目のタブがリダイレクトされるリンクで開きます。私は何を間違えているのですか?私が欲しいものを達成する良い方法はありますか?Firefox拡張機能でnsIURIContentListenerを使用する際の問題

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

さて、私はいくつかの研究をしました。フックは間違っていた。私は今コードを変更しました。もっと詳しく調べるにはgitを見てください...

+0

上記のgithubのリンクは壊れていて、どのような場合でも、あなたが行った修正の簡単な要約を含めることができれば、それは非常に役に立ち、それを見つけるためにコードを掘り下げなければなりません。 – MatrixFrog

+0

私はリンクを修正しました。もっと知りたいのであれば、http://github.com/bitboxer/firefox-detinyfy/blob/master/content/overlay.js - 特にオーバーライド*メソッドを参照してください。 – bitboxer

+0

githubリポジトリが見つかりません - 私はこれについてもっと多くの情報を持っていたいと思います! – Daniel

関連する問題