2009-02-27 13 views
1

Belirli URL'leri başka bir Siteye yeniden yönlendirmesi gereken küçük bir uzantı geliştiriyorum. Bir durum haricinde iyi çalışıyor: Bağlantıyı "Bağlam-Menüsü -> Yeni Sekmede Aç" ile açıyorsanız, geçerli sayfa sayfama yeniden yönlendirilir ve yönlendirilecek bağlantıyı içeren ikinci bir sekme açılır. Neyi yanlış yapıyorum? İstediğimi elde etmenin daha iyi bir yolu var mı? Firefox Uzantısında nsIURIContentListener kullanma ile ilgili sorunlar

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; 
    } 
} 

tam uzatma

burada bulunabilir: http://github.com/bitboxer/firefox-detinyfy

cevap

-1

Tamam, biraz araştırma yaptım. Kanca yanlış bir yaklaşımdı. Kodu şimdi değiştirdim. Daha fazla bilgi edinmek için git ...

+0

Yukarıdaki github bağlantısı kesildi ve her halükarda yaptığınız düzeltmenin kısa bir özetini ekleyebilecekseniz çok yardımcı olacaktır, böylece biz ' Bulmak için kodunuzu kazmak zorundasınız. – MatrixFrog

+0

Bağlantıyı çözdüm. Daha fazla bilgi edinmek istiyorsanız, http://github.com/bitboxer/firefox-detinyfy/blob/master/content/overlay.js - özellikle geçersiz kılma * yöntemleri – bitboxer

+0

Github repo'yu bulamıyorum - Bu konuda daha fazla bilgi sahibi olmayı çok isterim! – Daniel