ボタンにこのコードがあります:
var csvContent = "data:text/csv;charset=utf-8,";
csvContent += myCSVcontent;
var encodedUri = encodeURI(csvContent);
window.open(encodedUri);
これは、Chrome、Safari、および Firefox で完全に機能します。
- IE8 ではありません - Internet Explorer 8 との互換性が必要です。
上記のコードを呼び出すボタンをクリックすると、.csv ファイルがコンピューターにダウンロードされます。
ただし、IE8でボタンをクリックすると、アドレスバーにすべてのcsvコンテンツを含む新しいIE8ウィンドウが開き、何もダウンロード(またはダウンロードを要求)しません。
残念ながら、IE8 との互換性が必要です。どうすればこれを機能させることができますか?
編集:サーバーへの追加の呼び出しを避ける必要があります。すべてがクライアント側で発生する必要があります。これは現在、IE8 (およびおそらく IE9) を除くすべてのブラウザーで機能しています。
Edit2:最後の行を「document.location.href= encodedUri;」に変更すると 他のすべてのブラウザーでは引き続き機能しますが、IE8 でボタンをクリックすると、「システム コールに渡されたデータ領域が小さすぎます」というエラー ウィンドウが表示されます。それが私に何を言っているのか分かりますか?