質問: "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 Header set Content-Disposition inline ``` 補足 * 実行クライアントは、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を使用しています。 以上、何卒よろしくお願い致します。
回答: Ajax.Request の外側で window.location.href を実行した場合は通知バーが表示されないという理解で間違いないでしょうか。 そうであれば HTTP ヘッダーやクライアントのレジストリ設定は問題ないですね。 ajax の別のリクエスト コンテキスト内でページ遷移をしようとしているのでセキュリティ的な理由から通知バーが表示されているというような想定ができますが、この辺りは prototype.js の実装に依存する動作なのですぐにはっきりとしたことが言えないです。 実験的にこの部分だけでも prototype.js を使わない実装で試してみてください。