2009-02-27 6 views
1

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

Répondre

-1

D'accord, je l'ai fait quelques recherches. Le crochet était un faux problème. J'ai changé le code maintenant. Regardez dans le git pour en savoir plus ...

+0

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

+0

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

+0

Je ne trouve pas le repo github - J'aimerais avoir plus d'informations à ce sujet! – Daniel

Questions connexes