Как определить событие пришло из основного документа вкладки - PullRequest
2 голосов
/ 17 декабря 2009

Я разрабатываю расширение для Firefox. Расширение добавляет прослушиватель событий к элементу «appcontent» при событии «load».

Как определить событие, пришедшее из основного документа вкладки? На данный момент происходят все события из разных элементов страницы (например, изображение и даже документ расширения, если он запускается). Я хотел бы исключить все случаи, включая фреймы, iframe и т. Д., Только URL-адрес, введенный в адресной строке.

Ответы [ 3 ]

1 голос
/ 18 декабря 2009

Просто ответ для тех, кто дал баллы на сам вопрос и кто может найти вопрос через поиск.

Задача решается с помощью строки

  if (Event.originalTarget == content.document)

работал для меня.

Найдено в какой-то группе новостей

0 голосов
/ 17 декабря 2009

Посмотрите на originalTarget и explicitOriginalTarget атрибуты event объекта. https://developer.mozilla.org/en/DOM/event.originalTarget

Используйте это как что-то вроде:

if(event.explicitOriginalTarget == theHookedObject) {    
   // do your stuff 
}

Где theHookedObject - это объект, к которому вы прикрепили слушателя.

0 голосов
/ 17 декабря 2009

Можете ли вы сравнить event.srcElement.ownerDocument документ главной страницы? Вы также можете использовать свойства .location.href. Быстрый и грязный пример:

//- on event
var doc = event.srcElement.ownerDocument;
if (doc && (doc.location.href == currentUrl))
    runFunction();

https://developer.mozilla.org/En/DOM/Node.ownerDocument

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