我的Javascript代码在IE中不起作用,但在其他浏览器中工作正常

时间:2011-01-26 20:38:43

标签: javascript password-protection

我使用以下Javascript密码保护我的网页,但它不适用于IE,虽然它适用于Chrome和Firefox。

<script language="JavaScript">
    var password;
    var pass1="PASSWORD-HERE";
    password=prompt('Whats The Magic Word?',' ');
    if (password==pass1) alert('That Is Correct!');
    else {
      window.location="SITE-LINK";
    }
</script>

有什么问题?

请查看链接:http://www.xuanyinwen.com/test3.html 它适用于Firefox和Chrome但不适用于IE,当你在IE中打开链接时,它没有得到密码的消息,并将自动转到SITE-LINK。 我知道这个脚本不是很安全,但我只想用它来进行基本保护,只是想让它工作。谢谢你的帮助!

3 个答案:

答案 0 :(得分:1)

试试这个:

<script>
    prompt('Password:') === '1234' ? 
        alert('Correct!') : 
        window.location.href = 'http://www.google.com';
</script>

不同之处在于您正在设置href属性。

顺便说一句,我在IE9测试版中对此进行了测试,但它确实有效。

答案 1 :(得分:0)

我个人不会只使用javascript来保护密码...特别是当它可以公开显示时。

检查活动x是否已被禁用。适用于IE 7/8和quirk模式

IE关闭弹出窗口并自动启用活动x:

打开IE浏览器转到工具 - >网络选项 - >高级 - >安全性确保允许允许活动x。然后转到工具 - >互联网选项 - >隐私,并确保弹出窗口未被阻止。

警告:我不建议这样做!在测试之后请使用默认值我将不负责任

答案 2 :(得分:-1)

试试这个:

<script language="JavaScript">
var password;
var pass1="PASSWORD-HERE";
password = prompt('Whats The Magic Word?',' ');
if (password === pass1)
    alert('That Is Correct!');
else
    window.location="SITE-LINK";
</script>

差异为3等于符号而不是2.在JavaScript中的双等于让运行时尝试对被比较的项进行类型强制,而使用三等于它将它们完全按原样进行比较。

然而,正如上面提到的评论者所说,使用javascript作为唯一的密码保护是最好的天真。