getElementsByName в перезапускаемом (загруженном) расширении для Firefox Mobile
Я новичок в разработке расширений для Firefox в целом и в мобильной версии в частности, и я столкнулся с этой проблемой, которая сводит меня с ума.
Мне нужно извлечь элементы с определенным именем тега, пример <iframe>
или же <p>
или же <script>
, Естественно я думал об использовании getElementsByTagName()
, но это не работает для меня. Кроме того, я не знаю, где именно я должен поместить это, так как, когда я связываю это с функцией в кнопке в дверном вешалке, это не работает. Если я переключаюсь на функцию запуска, она отображает окно предупреждения, но с пустым результатом (ноль).
Я действительно застрял и мне нужна ваша помощь, ребята. Вот строки кода, которые я использую для этого:
doc=getBrowser().selectedTab.linkedBrowser.contentDocument;
frames=doc.getElementsByTagName("script");
Я просто отображаю длину массива извлеченных элементов в окне предупреждения и в тосте, когда я нажимаю кнопку в дверном вешалке:
label: "JavaScript",// the button label in the doorhanger
callback: function() {
Services.prompt.alert(null,"the iframes ","Frames Tag shown "+frames.length);// the alert window
aWindow.NativeWindow.toast.show("Frames Tag shown "+frames.length, "long");//the toast
}
2 ответа
Спасибо всем за помощь, я нашел решение: этот код привязан к кнопке меню, показывающей дверную вешалку:
init();// initialization of the vriables otherwise it won't work
var tab = window.BrowserApp.selectedTab;
doc = tab.window.document;// getting the DOM
iframes=doc.getElementsByTagName("iframe");// the the iframes
Существует довольно много различий между настольными и мобильными расширениями. Начнем с того, что последний не предлагает глобального getBrowser() или gBrowser. Вместо этого вы должны использовать объект BrowserApp.