• 締切済み

IE6 JavaScript download

使用しているIE6です。 ある画面には検索ボタンがありますが、検索を行ってから、取得したデータをcsvファイルとしてダウンロードします。ダウンロードする前に、ファイル保存をポップアップが必要です。 実現方法については まずlinkを動きで創建します。 var link = document.createElement("a"); linkの属性を設定します。 link.href = "data:text/csv;charset=utf-8," + "\ufeff" + encodeURIComponent(data); link.download = "aaa.txt"; IE6のほうは、fireEventを使います。 var evt = document.createEventObject(); link.fireEvent('onclick',evt) 質問:しかし、fireEventを呼び出すとき、「未定義エラー」となります。 ここで、困ってますので、教えてくれば、助かります。

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

文章の読解力に乏しいので、ご質問文の内容をあまり理解できてませんが… 勝手な想像で、以下のような感じで動作しませんか?  ・リンクをクリック → 通常のイベントが発生 → アラート表示  ・ボタンをクリック → fireeventでイベントを発生 → アラート表示 (一応I、E6.0で動作を確認) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head><title>sample</title> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <p id="trriger"><input type="button" value="Event Fire!"> <script type="text/javascript"> //要素を生成 var link = (function(){  var link = document.createElement("a");  var p = document.createElement("p");  link.appendChild(document.createTextNode("Created Text"));  link.href = "#";  p.appendChild(link);  document.getElementsByTagName("body")[0].appendChild(p);  return link; })(); //イベントを設定 link.attachEvent('onclick', function(e){  alert("Link is clicked!"); }, false); document.getElementById("trriger").attachEvent('onclick', function(e){  var evt = document.createEventObject();  evt.button = 1;  link.fireEvent ("onclick", evt); }, false); </script> </body> </html>

risenliu
質問者

お礼

お礼が遅れてしまって、申し訳ございません。 ご回答ありがとうございました。 やっぱり、IE6のほう、サーバではファイルを作成しなければ、リンクのクリックイベントをトリガーしてもうまく動かれない。解決策として、IE&だったら、データをローカルのファイルに書き込みとなります。

関連するQ&A