我正在開發Firefox的擴展。該擴展將事件監聽器添加到「加載」事件中的「appcontent」元素。如何確定事件來自標籤的主文檔
如何確定事件來自標籤的主文檔?目前來自網頁不同元素的所有事件(例如圖像,甚至是其中的一個擴展文檔)。我想排除所有的情況下,包括框架,iframe等,只有在地址欄輸入的網址。
我正在開發Firefox的擴展。該擴展將事件監聽器添加到「加載」事件中的「appcontent」元素。如何確定事件來自標籤的主文檔
如何確定事件來自標籤的主文檔?目前來自網頁不同元素的所有事件(例如圖像,甚至是其中的一個擴展文檔)。我想排除所有的情況下,包括框架,iframe等,只有在地址欄輸入的網址。
你能比較event.srcElement.ownerDocument
的主頁文件嗎?您也可以使用.location.href屬性。快速和骯髒的例子:
//- on event
var doc = event.srcElement.ownerDocument;
if (doc && (doc.location.href == currentUrl))
runFunction();
看一看event
對象的originalTarget
和explicitOriginalTarget
屬性。 https://developer.mozilla.org/en/DOM/event.originalTarget
使用它,就像這樣:
if(event.explicitOriginalTarget == theHookedObject) {
// do your stuff
}
哪裏theHookedObject
是您已連接監聽器的對象。
只是爲那些給出問題本身的人提供了一個答案,並且可能通過搜索找到問題的人。
任務是解決與線
if (Event.originalTarget == content.document)
爲我工作。
在某些新聞組中找到
請注意,這會將您限制爲當前可見的頁面。即如果後臺頁面加載完成,則不會通過此檢查。 – Nickolay 2009-12-28 19:43:05
我更喜歡https://forums.addons.mozilla.org/viewtopic.php?f=11&t=124的方法#1,儘管作者聲稱它並不總是有效。最好的解決方案是挑選一個正在運行的相對流行的擴展程序,並瞭解它是如何工作的。 – Nickolay 2009-12-28 20:05:21