2011-08-25 13 views
1

JSの画像をフォーム "submsmit"の中にフォームの送信アクションを入れずにロードします。javascriptを使用してサファリのonsubmitフォームイベント内で画像を読み込むことができません

私は何をすることは以下の通りです:

var img = new Image(); 
img.onload = function(){ 
    myfunction(); 
}; 
img.src = URL_FOR_PHP_SCRIPT_TO_DO_SOME_LOGIC; 
window_sleep(750); //Custom method to hang the CPU for 750ms until the request to call the image is called. 

このロジックは、私のために必要があり、私は意味、私はフォームが提出延期するのsetTimeoutを使用したくない、と私はURL_FOR_PHP_SCRIPT_TO_DO_SOME_LOGICこれを呼び出す必要がありますこのコードは異なるドメインのJSファイルにあるためです。 このロジックはすべてのブラウザでうまく動作し、画像を呼び出す要求が送信されますが、これはサファリでは画像要求を呼び出さず、フォームを直接投稿するようになります。 ブラウザがサファリであるときにフォームを含むページに「onunload」イベントを追加しようとしましたが、これは役に立ちませんでした。フォームは画像をロードするリクエストを送信せずにデータを直接送信します。

答えて

0

私はあなたのスリープ機能でやっていると思っているwhileループでSafariとFirefox4 +をハングアップできません。

ブラウザをハングアップできる実際の方法は、画像リクエストではなくAjaxコールを同期させることです。同期の呼び出しについての悪いことは、それが戻ってくるまでブラウザをロックするということです。接続が遅いと、フォームが送信されるまでに長い時間待つことになります。

その他のオプションは、サーバーにフォームを送信し、それを他のサーバーに転送することです。

関連する問題