2011-10-20 11 views
1

ユーザーがファイルを利用できるようにする必要があります。ダウンロードファイルを送信するコードは、送信ハンドラにあります。私はChromeやFirefoxでこれをやっています。ファイルをユーザーに送信し、次にJavaScriptを使用して新しいURLを読み込みます。

function submitMyForm() { 
    document.forms[0].submit(); 
    window.open("http://www.myURL.com"); 
} 

ChromeとFirefoxでは、これは完全に機能します。新しいタブでmyURL.comを開き、作成したファイルを開く/保存するようにユーザーに求めます。しかし、IE9では、myURL.comの新しいタブが開かれていますが、ダウンロードのプロンプトは隠されています。なぜなら、古いタブの一番下にポップアップ表示されているためです。

私はそうのように一つだけのタブに貼り付けて、この問題を解決しようとした:

function submitMyForm() { 
    document.forms[0].submit(); 
    window.location.href = "http://www.myURL.com"; 
} 

はしかし、これはちょうどすぐに新しいURLをロードし、そしてほとんどかのように、私の提出()関数を呼び出すことはありません。その行を完全に無視するだけです。これはすべてのブラウザで発生します。これはさらに悪いことです。

答えて

0

私は自分のフォームにtarget = "_blank"を追加し、ブラウザに基づいてさまざまな機能を実行しました。 Chromeの検出を支援してくれたthis pageに感謝します。

function submitform() { 
    document.forms[0].submit(); 

    //Test for Chrome 
    if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) { 
     //this works in Chrome 
     window.open("http://www.myURL.com"); 
    } 
    else { 
     //this works in IE9 and Firefox 
     window.location.href = "http://www.myURL.com"; 
    } 
} 
0

フォームが送信されると、新しいページ(target = "")またはiframeに投稿していない限り、現在のページのすべてのアクションが停止します。

+0

これは起こっていないことです。 "document.forms [0] .submit()"行は無視され、 "window.location.href"行が呼​​び出されています。 – WEFX

関連する問題