2010-12-09 87 views
3

我找不到比Blocking Unwanted Content section of this.Safari瀏覽器插件beforeload事件文檔

其他的「beforeload」事件是什麼,我專門找任何文檔事件消息的結構。從上面的文檔我知道有一個「event.url」成員,但沒有其他的。從一段源代碼我知道還有一個「event.target.nodeName」成員。但我沒有比這更多的東西。

我迷失在WebKit文檔和w3事件文檔中。我在哪裏可以找到一些關於「beforeload」事件的簡單參考文檔?

回答

3

事件消息(SafariExtensionMessageEvent實例)只有namemessageclass documentation)。它實際上在same page上進行了討論。

有趣的是,事件類(SafariEvent)文檔沒有提及url屬性或方法,因此要麼傳遞不同類的對象或者發生其他事情。

像你一樣,我發現蘋果的文檔充其量就是想要的。爲了編寫我想要寫的小擴展,我不得不拼湊來自文檔中各個位置的信息。如果你想知道你是否是唯一一個必須努力工作才能完成相對簡單的任務的人......你不是。 :-)

+0

感謝您的同情。在我提到的示例文檔的清單11-3中使用了「url」屬性。我猜測它是一個繼承的屬性,但我在Safari文檔中找不到類層次結構圖。 – mjhm 2010-12-09 14:45:17

4

DOM beforeload事件是一個WebKit概念,它並不特定於Safari擴展。它確實有一個URL屬性。

有關beforeload事件的一些信息 - 你可以看到:

http://opensource.apple.com/source/WebCore/WebCore-1298/dom/BeforeLoadEvent.idl

如果您在擴展內容腳本中使用此,一個方式來獲得一些更多的信息,關於是有一些代碼像:

document.addEventListener("beforeload", beforeLoadHandler, false); 

function beforeLoadHandler(event) 
{ 
    console.log(event); 
} 

然後使用Web Inspector來查看有關事件的信息(你可以看到它的網址,你可以看看事件目標,等等)。

1

的例子應該設置捕獲參數爲「真」 ,當從頁面內容使用時不是'假'。我不確定這將如何影響它在擴展中的使用,但是人們直接從頁面內容中使用它並使用它來重寫頁面。在這種情況下你需要捕獲。