Вы можете получить NodeList
всех a
элементов из документа, используя getElementsByTagName
, например:
var list = document.getElementsByTagName("a");
Таким образом, вы сделаете это для основного документа и для всех фреймов в документе. Чтобы получить доступ к фреймам, вы можете использовать псевдомассив window.frames
. Каждая запись является window
объектом этого кадра, поэтому:
var listInFrame = window.frames[n].document.getElementsByTagName("a");
Итак, создайте пустой массив, добавьте элементы из самого документа, а затем переберите окна, добавляя ссылки из своих документов.
Я не знаком с FireGestures, поэтому не знаю, применима ли Same Origin Policy к сценариям, которые он запускает.
Обновление : Исходя из вашего комментария ниже, похоже, что скрипты FireGesture подчиняются SOP. Таким образом, вы не сможете получить прямой доступ к содержимому документов из разных источников в сценарии FireGestures.
Возможно, вы сможете что-то сделать, комбинируя FireGestures и GreaseMonkey. GreaseMonkey имеет вызов API, GM_xmlhttpRequest
, который обходит SOP & mdash; но обратите внимание, что это будет еще один GET
, вы не будете читать копию страницы, которая уже находится в памяти, что, как вы сказали, вы хотели сделать. К сожалению, вполне возможно, что вы не сможете делать то, что вы хотите с FireGestures. Возможно, вам придется полностью написать собственное дополнение (и попросить предоставить ему соответствующие разрешения).