【问题标题】:Safari extension beforeload event documentationSafari 扩展前加载事件文档
【发布时间】:2011-05-22 16:26:25
【问题描述】:

除了Blocking Unwanted Content section of this. 之外,我找不到关于beforeload 事件的任何文档

我特别要寻找的是事件消息结构。从上面的文档中我知道有一个event.url 成员,但其他的不多。从源代码片段我知道还有一个event.target.nodeName 成员。但我没有更多的东西。

我迷失在 WebKit 文档和 w3 事件文档中。我在哪里可以找到beforeload 事件的一些简单参考文档?

【问题讨论】:

    标签: dom events webkit dom-events safari-extension


    【解决方案1】:

    事件消息(SafariExtensionMessageEvent 实例)只有一个name 和一个messageclass documentation)。这实际上在same page 上讨论过。

    有趣的是,事件类 (SafariEvent) 文档没有提到 url 属性或方法,因此要么传递了不同类的对象,要么发生了其他事情。

    和你一样,我发现 Apple 的文档充其量是需要的。为了编写我想要编写的小扩展,我不得不将来自文档中不同位置的信息拼凑在一起。如果你想知道你是否是唯一一个不得不努力工作以完成相对简单的任务的人……你不是。 :-)

    【讨论】:

    • 感谢您的同情。我提到的示例文档的清单 11-3 中使用了“url”属性。我猜它是一个继承的属性,但我在 Safari 文档中找不到类层次结构图。
    【解决方案2】:

    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,可以查看事件目标等)。

    【讨论】:

      【解决方案3】:

      当从页面内容中使用时,该示例应将捕获参数设置为“真”,而不是“假”。我不确定这将如何影响它在扩展中的使用,但人们直接从页面内容中使用它并使用它来重写页面。在这种情况下,您需要捕获。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多