используя расширение Firefox для получения изображений с текущей страницы - PullRequest
1 голос
/ 02 июня 2011

поэтому я создаю собственное расширение для Firefox,

Мой вопрос: если я хочу отправить информацию об изображениях на текущей странице на удаленный сервер, использующий это расширение, как мне написатьjavascript такой, что он может получить изображения в текущем документе?

в целом, как вы получаете доступ к любому HTML-контенту, который находится на текущей странице / документе, из javascript, который прикреплен к пользовательскому расширению Firefox?

1 Ответ

1 голос
/ 05 сентября 2011

Если ваше расширение загружает свой код JavaScript в оверлей браузера, то оно имеет доступ к глобальной переменной gBrowser (тег <tabbrowser> ). Для доступа к документу, загруженному на выбранной в данный момент вкладке, вы используете gBrowser.contentDocument. Чтобы получить URL-адреса всех изображений:

var images = gBrowser.contentDocument.getElementsByTagName("img");
var urls = [];
for (var i = 0; i < images.length; i++)
  urls.push(images[i].src);

Обратите внимание, что это даст вам только теги <img>. Вы не получите такие вещи, как <input type="image">, и не получите изображения, определенные в таблицах стилей CSS. Если вы хотите получить более полный список, вы должны посмотреть, как это делает диалоговое окно Page Info: http://hg.mozilla.org/mozilla-central/file/2bb8c0b664cf/browser/base/content/pageinfo/pageInfo.js#l614. Эта функция вызывается для всех элементов функции processFrames(), которая использует TreeWalker посмотрите на все элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...