除了阻止不需要的内容部分之外,我找不到有关该beforeload
事件的任何文档。
我特别要寻找的是事件消息结构。从上面的文档中,我知道有一个event.url
成员,但其他的不多。从源代码片段我知道还有一个event.target.nodeName
成员。但我没有更多的东西。
我迷失在 WebKit 文档和 w3 事件文档中。我在哪里可以找到beforeload
活动的一些简单参考文档?
除了阻止不需要的内容部分之外,我找不到有关该beforeload
事件的任何文档。
我特别要寻找的是事件消息结构。从上面的文档中,我知道有一个event.url
成员,但其他的不多。从源代码片段我知道还有一个event.target.nodeName
成员。但我没有更多的东西。
我迷失在 WebKit 文档和 w3 事件文档中。我在哪里可以找到beforeload
活动的一些简单参考文档?
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 查看有关事件的信息(您可以查看其 URL,您可以查看事件目标等)。
事件消息(SafariExtensionMessageEvent
实例)只有一个name
和一个message
(类文档)。它实际上是在同一页上讨论的。
有趣的是,事件类(SafariEvent)文档没有提到url
属性或方法,因此要么传递了不同类的对象,要么正在发生其他事情。
像你一样,我发现 Apple 的文档充其量是需要的。为了编写我想要编写的小扩展,我不得不将来自文档中不同位置的信息拼凑在一起。如果你想知道你是否是唯一一个不得不努力工作以完成相对简单的任务的人……你不是。:-)
当从页面内容中使用时,该示例应将捕获参数设置为“真”,而不是“假”。我不确定这将如何影响它在扩展中的使用,但人们直接从页面内容中使用它并使用它来重写页面。在这种情况下,您需要捕获。