none
ファイルダウンロードコンボボックスのイベント取得について RRS feed

  • 質問

  • はじめまして。

    ASPとJavascriptで作成したWebシステムで教えていただきたいことがあります。

     

    Web画面から帳票を作成しています。

    その帳票を作成する際に、blankのブラウザを作成し、その中にExcel形式の帳票を

    作成しています。

    ファイルのダウンロードを行う際、MS標準のファイルダウンロードコンボボックスが

    起動しますが、

    「開く」 を選択した場合、blank画面に、帳票が作成されます。(正常に動作する)

    「保存」「キャンセル」を選択した場合、blank画面が残ってしまいます。

     

    「保存」「キャンセル」時には、blank画面を閉じたいのですが、

    制御は可能でしょうか?

    お手数をおかけしますが、ご教授いただければと思います。

    よろしくお願いします。

     

    <HTML>
    <HEAD>
    <TITLE>Test6</TITLE>
    <META http-equiv="content-type" content="text/html; charset=shift_jis">
    <META http-equiv="Content-Style-Type" content="text/css">
    <META http-equiv="Content-Script-Type" content="text/javascript">
    <SCRIPT type="text/JavaScript"><!--
    var wnd;
    function wndOpn(){
    wnd = window.open("","sample");
    if(wnd.location.href.indexOf("sumple.xls")<0){
    wnd.location="sumple.xls";
    wnd.focus();
    }else{
    alert("二重起動禁止");
    }
    }
    //--></script>
    </HEAD>

    <BODY>
    <INPUT type="button" name="bnt" value="出力" onclick="wndOpn()"><BR>
    </BODY
    </HTML>

     

     

    2007年5月7日 5:41

回答

  • じゃんぬねっと さんありがとうございました。

     

    いろいろ調べて見ましたが、確かにそうですね。

     

    ファイルダウンロードのダイアログの制御はJSからは難しそうですね。

     

    今は、ダミーのBlank画面からsetIntervalを使用して、画面を削除できるように検討中です。

     

    仕事でWebシステムを改修していますが

     

    他の業者が作成したソース、でかつ今回の開発費用の問題で改修範囲が限られている点…。

     

    今の形式では確かにちょっと苦しいですが…。もう少しがんばってみます。

     

    ありがとうございました。

     

     

    2007年5月8日 2:13

すべての返信

  • tomo_no.12 さん、こんにちは。

     tomo_no.12 さんからの引用
    ファイルのダウンロードを行う際、MS標準のファイルダウンロードコンボボックスが起動しますが、

    "ファイルダウンロードコンボボックス" とは何のことでしょうか?
    "ファイルのダウンロード ダイアログ" の誤りでしょうか?

    「開く」 を選択した場合、blank画面に、帳票が作成されます。(正常に動作する)「保存」「キャンセル」を選択した場合、blank画面が残ってしまいます。

    そもそも window.open で開いていること自体がまずいのではないでしょうか。
    本来はユーザーの自由としたいところですが、どうしてもというのであれば、target="_blank" の方がまだマシかもしれませんね。
    2007年5月7日 8:06
  • じゃんぬねっと さんありがとうございました。

     

    いろいろ調べて見ましたが、確かにそうですね。

     

    ファイルダウンロードのダイアログの制御はJSからは難しそうですね。

     

    今は、ダミーのBlank画面からsetIntervalを使用して、画面を削除できるように検討中です。

     

    仕事でWebシステムを改修していますが

     

    他の業者が作成したソース、でかつ今回の開発費用の問題で改修範囲が限られている点…。

     

    今の形式では確かにちょっと苦しいですが…。もう少しがんばってみます。

     

    ありがとうございました。

     

     

    2007年5月8日 2:13
  • サンプルソースちょっと違うかもしれないけどwindow.openで開いた画面を

    ↓時間

    setTimeout("Kill()", 10000);

    後にcloseしてます。


      function Kill()
      {
       setTimeout("Kill()", 10000);
       top.close();
      }

     

     

    ------------------------------------------------------------------------------------------

     

    <HTML>
     <head>
      <title>ダウンロード</title>
      <script language="JavaScript">
      <!-- Code hiding from here
      function Open()
      {
       setTimeout("Kill()", 10000);
       data = window.opener.document.forms[0];
       window.location.href = data.downloadpath.value;
      }
      function Kill()
      {
       setTimeout("Kill()", 10000);
       top.close();
      }
      // end -->
      </script>
     </head>
     
     <body onLoad="Open()">
     </body>

    </html>

    2007年5月16日 6:14