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.

Другие вопросы по тегам