3

beforeloadApple のドキュメントを読みましたがbeforeload、ネットワークの観点から、 がロードをキャンセルする方法についてはまだ少し確信が持てません。Apple のドキュメントには次のように書かれています。

Safari 5.0 以降 (およびその他の WebKit ベースのブラウザー) は、Web ページに属する各サブリソースをロードする前に「beforeload」イベントを生成します。

ここのまばらなドキュメントには、beforeloadブロックがリソースの HTTP フェッチを防止する必要があることを示唆するものは何もありません。Web リソースを「ロード」する操作には何が必要ですか (たとえば、load一部の W3C 仕様に ing の正式な定義はありますか)? Webkit の現在の実装では、ロードをキャンセルするとブラウザが HTTP リクエストを送信できなくなりますか?それとも単にリソースのレンダリングとイベントの発生beforeloadを停止するだけですか?load

私は代わりに、beforeload追跡画像をブロックするための の有用性を評価するために、主にこれらの質問に参加しています。これを行う方法が他にもあることは知っていますが (Chrome のAPI など)、それが適しwebRequestているかどうかも知りたいです。beforeonload

4

1 に答える 1

2

厳密に言えば、beforeload何も妨げません。する機会を提供するだけpreventDefault()です。

あなたのスタックは使用していますdispatchMessage()か?これは非同期であり、防止する前にリソースのフェッチを開始できます。

http://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/SafariExtensionGuide.pdf#page=88を読みました か? 同期アプローチを提供します (pp. 91-92)。

ps
これを回答ではなくコメントとして追加しましたが、まだコメントを追加できません

于 2012-09-24T15:07:45.710 に答える