Как добавить элементы на веб-страницу из расширения Firefox - PullRequest
0 голосов
/ 09 мая 2009

Я собираюсь разработать расширение Firefox, которое должно помещать кнопку в загруженные страницы, когда тег: <input type="file" ... > найден и файл выбран.

Аналогичным образом, я думаю, что панель инструментов скайпа делает то же самое: когда веб-сайт содержит номер телефона, добавочный номер Skype автоматически преобразует его в кнопку, которую можно нажать для вызова контактов скайпа.

Я работаю в системе GNU / Linux, и, к сожалению, расширение skype не работает на версиях Firefox / skype для Linux, поэтому я даже не могу попытаться что-то изменить ...

Расширение Firefox содержит файл overlay.js: этот файл содержит основную логику для расширения. Здесь я могу найти <input type="file" ... > узлов просто с помощью этого кода:

onFileChosen: function(aEvent) {
var input = aEvent.explicitOriginalTarget; 
if(input.type=="file"){
    alert(input.value); }
}

window.addEventListener("change", function(e) {xpitest.onFileChosen(e)},false);

Итак, когда файл выбран, появляется окно предупреждения и показывает имя файла.

Но как я могу поместить кнопку на странице, когда файл был выбран?

Я пробовал использовать разные document.parentNode и аналогичные, но, похоже, ничего не работает.

Или, возможно, я не могу поместить что-либо в загруженную страницу?

Спасибо

1 Ответ

4 голосов
/ 10 мая 2009

Из контекста Chrome вы можете получить текущий документ содержимого (например, страницу с выбором файлов), используя top.window.content.document. В этот момент, как будто ваш JS работает на странице. Если это не поможет, пожалуйста, напишите ваш код с как можно большей информацией. См. Также Работа с окнами в коде Chrome .

И вы определенно можете вводить вещи на страницу.

...