Javascript无法在IE浏览器中运行,但适用于Firefox或Chrome

时间:2011-03-29 20:40:10

标签: javascript html password-protection

  

可能重复:
  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>

3 个答案:

答案 0 :(得分:1)

在IE6和IE8中为我工作,虽然我确实收到了我必须点击的安全警告。

如果添加行

window.alert('received password: ' + password);

直接在提示行下,你看到了什么密码?这是否解决了这个问题?

此外,你从哪里运行(文件/网络服务器)和什么是Internet Explorer报告作为安全区域(在浏览器底部的栏上,在右边 - 可能说某些内容是互联网或本地内联网或东西)?

[编辑 - 回应OP的评论]

您刚刚透露,您正在服务器上运行此功能。在Windows 2008服务器上(可能是2003年 - 不记得了),Internet Explorer运行在一个名为Internet Explorer增强安全模式的东西中(当你启动它时,它可能在它的“主页”上说明了这一点)。在这种模式下,安全性非常严格,它不会运行Javascript以及来自任何可信站点的许多其他东西,它甚至不会警告你。这是为了限制您只是通过网页浏览形式意外地将病毒,木马或其他任何内容引入服务器的可能性。您现在描述的行为使有意义。

不幸的是,我认为您不能将本地文件添加到可信站点列表(工具 - > Internet选项 - >安全性),因此没有简单的方法来允许此文件。

您的选择是:

  • 禁用Internet Explorer增强安全性。可能不推荐,除非您仅为非特权用户执行此操作。
  • 通过服务器上的Web服务器提供此文件,而不是直接从文件提供 - 然后您可以通过http 添加到可信站点列表中进行调试。
  • 根本不要尝试在服务器上调试这些东西(至少,不要在服务器上的IE中)。

答案 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这可能就是您所遇到的问题。