web-dev-qa-db-ja.com

Chromeがダウンロードファイルを取得したときに発生するJSイベントはどれですか?

GoogleChromeでのiframeのonLoadイベントに問題があります。 iframeを作成し、その「src」属性に値を設定して、サーバーからファイルを取得しました。サーバーの処理中、クライアントが返されたファイルを取得するまで待機ボックスが表示されます。 iframeのonLoadイベントを使用して、クライアントがファイルを取得して待機ボックスをオフにするタイミングを検出しようとしましたが、GoogleではChromeそのイベントハンドラーは機能しません。
Firefoxでは、クライアントがファイルを取得すると、「保存先」ポップアップが自動的に表示され、イベント「ロード」が発生しますが、これはChromeでは発生しません。
この問題の処理方法を教えてください。どうもありがとうございます!

16

私はこの正確な問題に遭遇しました。 Chromeは、ファイルのダウンロード時にiframeでイベントをまったくトリガーしません。

注意すべきイベントがなく、(インラインコンテンツに加えて)ファイルを返すため、回避策数秒後にiframeのコンテンツを検査する必要がありました。空の場合は、何もなかったと想定します。エラーと結果は正しく処理されました。データが含まれている場合(エラーがある場合、サーバーはJSONを返します)、それに応じてエラーデータを処理します。

15
Dan

私はこれと同じ問題に遭遇し、このプラグインを使用することになりました: http://johnculviner.com/jquery-file-download-plugin-for-ajax-like-feature-rich-file-downloads/

それはモーガンが説明するのと同じ概念に基づいており、使いやすく、そしてそれは素晴らしい働きをしました。

5
Andrea

この問題を回避する方法は、iframeが読み込まれるページにCookie(done = 0)を設定し、javascriptを使用してiframeをページにドロップし、iframeのときにこのCookieの値を変更することでした。ソーススクリプトは正常に実行されます(完了= 1)。

次に、settimeoutを指定した単純なajax呼び出しを使用して、Cookieの値を返しました。値が1の場合、onloadイベントをトリガーできます(他のすべてのブラウザーで機能します)。

1
morgan