ファイルのダウンロード時にIEの通知バーを表示させたくない
JavaScriptを使用してサーバーにあるファイルにアクセスし、そのファイルをクライアントのexeで開くプログラムを作っています。
概ね期待通りの動作はできているのですが、サーバーのファイルにアクセスするところでブラウザ(IE9)の通知バーが表示されてしまいます。これを表示させずにexeを起動させなければならないのですが、回避する方法が分からなくて困っています。
(通知バーとは、ブラウザの画面下部に表示される [開く] [保存] [キャンセル]を選択するもののことです)
コードは下記の様になっています。sample.cgiの呼び出しが成功したら"result.myext"を開くという処理です。
new Ajax.Request("sample.cgi", {
method:"post",
parameters:"param=123",
onSuccess:function() {
window.location.href = "result.myext";
}
});
通知バーが表示されてしまうのは、onSuccessで処理をした場合に起きており、例えば、window.location.href = "result.myext"
を new Ajax.Request
の手前に書いた場合には、通知バーが表示されることなくexeが起動してきます。従いまして、MIMEやレジストリの設定に誤りは無いと思っています。
なぜ、onSuccessではできないのか、何か解決の手法をご存知の方がいらしたらご教授をお願い致します。
なお、実行クライアント(Windows 7)には、拡張子"myext"についてレジストリに下記の設定が済んでいます。
- 実行するexeの関連付け
- EditFlags 65536
- BrowserFlags 8
また、apacheのhttpd.confには、MIME "myext"について下記の設定が済んでいます。
AddType application/myext .myext
<FilesMatch "\.myext$">
Header set Content-Disposition inline
</FilesMatch>
補足
- 実行クライアントは、Windows 7以降。ブラウザはIE9以降に限定しています。
- WindowsXPとIE8では、IE9での通知バーに相当する、実行・保存ダイアログを表示させることなく動作していました。
- 他の方法として、タイマーでsample.cgiが成功するのを監視しresult.myextを開くということを試しましたが、通知バーが表示されてしまいました。
- apacheのMIME設定は、無くても関連付けられたexeは起動できる様です。
- サーバーはWindows Server 2008 R2、 Apache 2.0.65
- prototype.jsのバージョンは、1.5.0を使用しています。
以上、何卒よろしくお願い致します。