Je développe une petite extension qui doit rediriger certaines URL vers un autre site. Cela fonctionne bien, sauf pour une situation: si vous ouvrez le lien avec "Menu contextuel -> Ouvrir dans un nouvel onglet", la page en cours est redirigée vers ma page et un deuxième onglet s'ouvre avec le lien qui devrait être redirigé. Que fais-je tort? Y a-t-il un meilleur moyen de réaliser ce que je veux?Problèmes avec l'utilisation de nsIURIContentListener dans Firefox Extension
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;
}
}
L'extension complète se trouve ici: http://github.com/bitboxer/firefox-detinyfy
Le lien github ci-dessus est cassé, et dans tous les cas, si vous pouviez inclure un bref résumé de la correction que vous avez faite, ce serait très utile, de sorte que nous ne '' Je dois fouiller dans votre code pour le trouver. – MatrixFrog
J'ai corrigé le lien. Et si vous voulez en savoir plus, regardez dans: http://github.com/bitboxer/firefox-detinyfy/blob/master/content/overlay.js - en particulier les méthodes de substitution * – bitboxer
Je ne trouve pas le repo github - J'aimerais avoir plus d'informations à ce sujet! – Daniel