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
上記のgithubのリンクは壊れていて、どのような場合でも、あなたが行った修正の簡単な要約を含めることができれば、それは非常に役に立ち、それを見つけるためにコードを掘り下げなければなりません。 – MatrixFrog
私はリンクを修正しました。もっと知りたいのであれば、http://github.com/bitboxer/firefox-detinyfy/blob/master/content/overlay.js - 特にオーバーライド*メソッドを参照してください。 – bitboxer
githubリポジトリが見つかりません - 私はこれについてもっと多くの情報を持っていたいと思います! – Daniel