2015-04-29 12 views
5

Bir Firefox addon'u, sekme belirli bir etki alanındaysa, adres çubuğuna bir düğme eklemem gerekiyor.Bir eklenti/uzantı, sekme belirli bir alanda açıksa Firefox adres çubuğuna bir simge/düğme nasıl eklenir?

Ben geçerli pencere için eleman navbar-simgeler bulmak ve bir çocuk eklemek başardılar, ancak bunun yerine sadece ilgili sekmenin, o pencereyi tüm sekmeler için simgesi ekleyin. Bunu nasıl yapabilirim?

DÜZENLEME: i mobil oldu ve kodu yoktu üzgünüm. ben bugüne kadar ne var

:

var windowsUtils = require('sdk/window/utils'); 

var loadButton = function(doc, urlBtnClick) { 
    var urlBarIcons = doc.getElementById('urlbar-icons'); 

    var btn = doc.createElement('toolbarbutton'); 
    btn.setAttribute('id', 'button-icon'); 
    btn.setAttribute('image', self.data.url('./images/icon16.png')); 
    btn.click(onButtonClick); 
    urlBarIcons.appendChild(btn); 
    return btn; 
} 

var onButtonClick = function(event) { 
    console.log('i was clicked'); 
} 

i yerine mevcut aktif birinin her sekmesine bir simgesi/düğmesi eklemek yukarıdaki istediğim zaman

.

+1

onun eski (1 yıl eski) ve improvment gerekir ama çalışması gerekir böylece Bu demo eklenti sadece bu ama e10s dikkate almaz vermez: https://gist.github.com/Noitidart/9266173 ben sadece onu yüklü Firefox Beta kanalı ve çalışır. newtab dışı sayfadaki çubuğa turuncu bir küp ekler ve kullanıcı odakları URL'de olmadığında. – Noitidart

+0

Daha önce hangi kodu denediniz? Lütfen kaynak kodunuzu eklemek için soru * yazın. [Burada yaklaşık sorabilir hangi konuları?] Bakın (http://stackoverflow.com/help/on-topic), [Nasıl iyi soru soruyorsun?] (Http://stackoverflow.com/help/how -to-sor) ve [Minimal, Tam ve Doğrulanabilir bir örnek nasıl oluşturulur?] (http://stackoverflow.com/help/mcve). Çözüm çalışmalarımızı sizin için doğrulamaya çalışırsak, kodunuzu baştan çıkarmak zorunda kalmadan başlamak için bunu yapmak daha kolay olacaktır. Böyle bir kod olmadan sizin için bir cevap bulmak için daha az teşvik vardır. – Makyen

+0

@Noitidart teşekkürler, ama bunun için çok yeni olmak, biraz kafa karıştırıcı. Eklenti SDK'sini kullanıyorum ve önyükleme otomatik olarak yapıldığı için, bu önyükleme dosyasını nasıl kullanabilirim? Daha kolay bir yolu var mı? – tiagosilva

cevap

0

Bu sadece SDK'nın sekmeleri ve düğme apis kullanarak hacky uygulamasıdır:

let { ActionButton } = require("sdk/ui/button/action"); 
let tabs = require('sdk/tabs'); 
let soButton; 

tabs.on('activate', (tab) => { 
    if (/^http[s]*\:\/\/stackoverflow.com/.test(tab.url)) { 
    soButton = ActionButton({ 
     id: "so-button", 
     label: "This is StackOverflow!!", 
     icon: { 
     "16": "chrome://mozapps/skin/extensions/extensionGeneric.png", 
     "32": "chrome://mozapps/skin/extensions/extensionGeneric.png" 
     }, 
     onClick: function(state) { 
     console.log("clicked"); 
     } 
    }); 
    } else { 
    if (soButton && typeof (soButton.destroy === 'Function')) { 
     soButton.destroy(); 
    } 
    } 
}); 

O oluşturmak/düğmesini biz sekmeler arasında geçiş her zaman yok etmek klugey hissediyor ama kullanıcı deneyimi tam olarak istediğiniz şeydir. Benzer ve belki de "daha iyi desteklenen" bir yaklaşım, sadece disable the button için olabilir.

+0

Ancak bu bir sekme düğmesi oluşturacak/imha edecek, bu rss feed tespiti addon gibi bir adres çubuğu simgesi/düğmesi eklemek istedim: http://imgur.com/7gum4uD Sanırım aynı stratejiyi kullanabilirim yaptığınız gibi her sekmede simge yok/yok, teşekkürler – tiagosilva

+0

Ah, tamam. Evet - kabaca aynı stratejiyi kullanabilirsiniz. – canuckistani

İlgili konular