Próbuję przekonwertować skrypt Greasemonky na rozszerzenie dla Firefoksa i próbuję uczynić moje rozszerzenie automatycznie dołączać prosty skrypt do dowolnej strony internetowej po otwarciu nowej karty. Przekształcam skrypt z Greasemonkey, ponieważ chciałbym skorzystać z zaawansowanych preferencji i opcji menu.Jak uzyskać dostęp do obiektu okna nowo otwartej karty? [w rozszerzeniu firefox]
mogę uzyskać dostęp do karty za pomocą tego:
var container = gBrowser.tabContainer;
container.addEventListener("TabOpen", tabAdded, false);
function tabAdded(event) {
var newtabwindow = event.target.____ //I don't know what goes here
//attach script to newtabwindow
}
i moim celem jest, aby dołączyć skrypt do dokumentu w nowej karcie raz ładuje użyciem tej funkcji:
function scriptrunner(targetwindow) {
var myScript = targetwindow.content.document.createElement('script');
myScript.type = 'text/javascript';
myScript.setAttribute('src','chrome://addonname/content/addonscript.js');
targetwindow.content.document.getElementsByTagName('head')[0].appendChild(myScript);
}
Ta funkcja działa dobrze, aby dołączyć skrypt do bieżącej strony, gdy jest on dołączony do przycisku paska narzędziowego z poleceniem oncommand = "scriptrunner (okno)", ale nie wiem, w jaki sposób mogłem uzyskać dostęp do okna w nowo otwartej karcie lub czy powinienem wyciąć okno z równania i dostęp do dokumentu w inny sposób.
Czy 'var newtabwindow = event.target;' nie działa? – Sukima
Z twojego opisu wydaje się, że Mozilla [Add-on SDK] (https://addons.mozilla.org/en-US/developers/docs/sdk/latest/) jest bardziej odpowiednia dla tego zadania. Możesz użyć [page-mod] (https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/page-mod.html), aby dołączyć skrypt do dowolnej strony internetowej, gdzie URL pasuje do wzorca lub użyj modułu [tabs] (https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/tabs.html). – ZER0