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 在 Internet 选项中有一个设置来允许或拒绝prompt()

IE提示设置
(来源:adamhaskell.net

默认情况下,在 IE8 中,此设置是关闭的。因此,调用prompt()被忽略""并由它们返回。

prompt()无论如何你都不应该使用。使用表格。

于 2012-04-17T19:07:18.360 回答
3

它看起来像是特定于 IE-8 的安全问题,我没有其他版本要测试。调用prompt()会产生有关询问信息的脚本窗口的警告。我可以点击允许,刷新页面后,提示框如预期出现。

如果您要坚持使用prompt(),您可能必须规定目标计算机上的安全设置配置为允许它。

于 2012-04-17T19:01:46.853 回答
2

微软开发者网站告诉我们,“prompt()”已被弃用,现在出于安全原因通常会被阻止:“默认情况下,此方法会被 Internet 区域中的信息栏阻止。这有助于防止恶意网站发起欺骗攻击。”

请参阅http://msdn.microsoft.com/en-us/library/ms536673.aspx

于 2013-07-30T10:35:27.477 回答
1

从这份报告来看,它看起来像是 IETester 中的一个已知错误?

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

于 2012-04-17T18:50:29.427 回答