0

header('Content-Disposition: attachment私の質問は次のとおりです。PHP の... 手法を使用してファイルをダウンロードした後、ダウンロード元の Web ページのdocument.readyState値はinteractive.

completeダウンロードが完了したので、これが代わりになると思います。

何か不足していますか、それともこれは予想される動作ですか?

後者の場合、document.readyStateバックをにリセットする方法はありますcompleteか?

(違いがある場合、これは Internet Explorer を使用しています...)


バックグラウンド:

ページの読み込みが完了したときにのみアクティブにしたいJavaScript関数がいくつかあるので、使用します

if( document.readyState != "complete" ) return;

この目標を達成するための開始時に。document.readyStateこれはinteractive、プログレッシブロード中と同様に、ページロードで適切に機能し、ページロードのcomplete完了時にのみ機能します。

ページの後半で、読み込まれたデータをダウンロードできるように、ユーザーを以下の PHP コードに送るリンクを提示します。

header( 'Content-Type: text/csv; charset=Shift-JIS' );
header( 'Content-Disposition: attachment; filename="' . $filename . '"' );
$output = fopen( 'php://output', 'w' );
//write to file output... 
fclose( $output );

ここで、このリンクを押すと、document.readyState最初に が発生しloading、次にが発生しますinteractiveが、状態はそこにとどまり、 に移動することはないcompleteため、以前の JavaScript 関数は無効になります...


なぜそうなのか、私は途方に暮れており、あらゆる方向で助けていただければ幸いです。

4

1 に答える 1