可能重复:
JavaScript works under Firefox but does not work under IE
以下脚本不适用于IE。不要担心它是否安全,我只想测试这个javascript,但我不知道为什么它不能用于IE。当我在IE上打开它时,它会将其视为错误的密码并立即转到谷歌页面。不执行输入密码的警报。但是,它适用于其他浏览器。我已经尝试了许多不同版本的IE并禁用了块加载项,但仍然没有运气使它工作。
<HEAD>
<SCRIPT language="JavaScript">
<!--hide
var password;
var pass1="cool";
password=prompt('Please enter your password to view this page!',' ');
if (password==pass1)
alert('Password Correct! Click OK to enter!');
else
{
window.location="http://www.google.com/";
}
//-->
</SCRIPT>
</HEAD>
答案 0 :(得分:1)
在IE6和IE8中为我工作,虽然我确实收到了我必须点击的安全警告。
如果添加行
window.alert('received password: ' + password);
直接在提示行下,你看到了什么密码?这是否解决了这个问题?
此外,你从哪里运行(文件/网络服务器)和什么是Internet Explorer报告作为安全区域(在浏览器底部的栏上,在右边 - 可能说某些内容是互联网或本地内联网或东西)?
[编辑 - 回应OP的评论]
您刚刚透露,您正在服务器上运行此功能。在Windows 2008服务器上(可能是2003年 - 不记得了),Internet Explorer运行在一个名为Internet Explorer增强安全模式的东西中(当你启动它时,它可能在它的“主页”上说明了这一点)。在这种模式下,安全性非常严格,它不会运行Javascript以及来自任何可信站点的许多其他东西,它甚至不会警告你。这是为了限制您只是通过网页浏览形式意外地将病毒,木马或其他任何内容引入服务器的可能性。您现在描述的行为使总有意义。
不幸的是,我认为您不能将本地文件添加到可信站点列表(工具 - > Internet选项 - >安全性),因此没有简单的方法来允许此文件。
您的选择是:
答案 1 :(得分:1)
看看这个页面:
http://www.hunlock.com/blogs/Working_around_IE7s_prompt_bug,_er_feature
编辑:如果这没有帮助,请看一下jQuery。有一个插件专门用于替换该提示并避免IE7问题(所以他们说,至少):
http://abeautifulsite.net/blog/2008/12/jquery-alert-dialogs/
jQuery将解决许多跨浏览器兼容性问题,您的帖子就是一个例子。我自己抵制了一段时间,但现在我很高兴我开始使用它。
编辑2:这将在IE7中起作用(尽管没有提示)
<html>
<head>
<script type="text/javascript">
function checkPasswd() {
var passwd = document.getElementById ("passwd");
if (passwd.value === "cool1")
alert('Password Correct! Click OK to enter!');
else
window.location="http://www.google.com/";
}
</script>
<body>
<form>
<input name="passwd" id="passwd" type="password"/>
<input name="submit" type="button" value="submit" onclick="checkPasswd();"/>
</form>
</body>
</html>
答案 2 :(得分:0)
Google IE7 prompt bug这可能就是您所遇到的问题。