我已经阅读了Apple的beforeload
documentation,但从网络角度来看,我仍然不确定beforeload
取消加载的方式。 Apple的文档说:
Safari 5.0及更高版本(以及其他基于WebKit的浏览器)会生成" beforeload"加载属于网页的每个子资源之前的事件。
这里的稀疏文档中没有任何内容告诉我beforeload
块必须阻止HTTP获取资源。 " loading"的操作是什么? Web资源需要(例如,某些W3C规范中是否有load
的正式定义)?在Webkit的当前实现中,使用beforeload
取消加载会阻止浏览器发送HTTP请求,还是仅仅停止渲染资源并触发load
事件?
我主要是在这些问题中评估beforeload
阻止跟踪图片的有效性。我知道还有其他方法可以执行此操作(例如,Chrome的webRequest
API),但我想知道beforeonload
是否也适用。
答案 0 :(得分:1)
beforeload
严格来说并不能阻止任何事情;它只是提供了preventDefault()
的机会。
您的筹码是否使用dispatchMessage()
?这是异步的,允许在您可以阻止之前获取资源。
你读过吗? http://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/SafariExtensionGuide.pdf#page=88?它提供了一种同步方法(第91-92页)
PS
我会添加这个作为评论而不是答案,但我还不能添加评论