7

問題の解決策を見つけるのに苦労しています。コード スニペットを次に示します。

var ans = prompt("Mot de passe", '');
if (ans != '' && ans != null)
   __doPostBack('__Page', ans);
else
   window.location = "../Erreurs/NotAuthorized.aspx";

このコードは Internet Explorer 9 で非常にうまく機能します。しかし、私のクライアントは Internet Explorer 8 だけで動作しているので、IE8 の ieTester でテストしました。しかし問題は、入力に空の文字列 ('') が含まれていたため、プロンプトが表示されず、自動的にリダイレクトされることです。

では、これを修正して Internet Explorer 8 で動作するようにするにはどうすればよいでしょうか?

4

4 に答える 4

8

IE には、許可または拒否するインターネット オプションの設定がありますprompt()

IEプロンプト設定
(出典: adamhaskell.net )

IE8 のデフォルトでは、この設定はオフになっています。したがって、への呼び出しprompt()は無視され、""返されます。

とにかく使ってはいけませprompt()ん。フォームを使用します。

于 2012-04-17T19:07:18.360 に答える
3

確かに IE-8 に固有のセキュリティのように見えます。テストする他のバージョンはありません。を呼び出すprompt()と、情報を求めるスクリプト ウィンドウに関する警告が生成されます。クリックして許可すると、ページを更新した後、プロンプト ボックスが期待どおりに表示されます。

の使用を主張する場合はprompt()、ターゲット マシンのセキュリティ設定がそれを許可するように構成されていることを規定する必要があります。

于 2012-04-17T19:01:46.853 に答える
1

このレポートから、これは IETester の既知のバグのように見えますか?

http://www.my-debugbar.com/forum/t294-Javascript-Alerts.html

于 2012-04-17T18:50:29.427 に答える