我的 Javascript 代码在 IE 中无法运行,但在其他浏览器中运行良好

Posted

技术标签:

【中文标题】我的 Javascript 代码在 IE 中无法运行,但在其他浏览器中运行良好【英文标题】:My Javascript code does not work in IE but works fine in other browsers 【发布时间】:2011-01-26 20:38:42 【问题描述】:

我使用以下 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。 我知道这个脚本不是很安全,但我只想将它用于基本保护,只是想让它工作。感谢您的帮助!

【问题讨论】:

“它不工作”是什么意思?它在做什么而不是您的预期? 不可能只用 JavaScript 代码“保护”一个网页。 而且language 属性早就被弃用了。请改用 type 属性(或 HTML 5 中的任何内容)。 您好,请再次检查原始问题,我只是添加更多详细信息和测试页面。为任何帮助欢呼。 大声笑我无法检索上面页面的源代码。 【参考方案1】:

试试这个:

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

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

顺便说一句,我在 IE9 测试版中对此进行了测试,它可以正常工作。

【讨论】:

我感觉是她的 IE 浏览器设置,因为我尝试了 javascript,它在 IE7/8/quirk 模式下对我有用。 我只是试试你的脚本,但它对我来说还是一样,在 firefox 和 chrome 中工作,但不是 IE。知道为什么请 @xuan 你测试的是哪个 IE 版本? IE 8,版本:8.0.6001.18975。 @xuan An IE 到底发生了什么?【参考方案2】:

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

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

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

打开 IE 转到工具->Internet 选项->高级->安全确保允许活动 x 被允许。然后转到工具-> Internet 选项-> 隐私并确保弹出窗口未被阻止。

警告:我不建议这样做!测试后请使用默认值,我概不负责

【讨论】:

您好,感谢您的回复,我知道它对脚本来说不是很安全,但我只是将它用于基本保护。你能告诉我在哪里可以检查 active x diable,它在 IE 选项上吗?再次感谢。 我已经启用了活动的 x,但仍然无法让它在 IE 上运行。干杯 @xuanyinwen 我只是不认为你应该继续走这条路,除非它绝对有必要完成你正在尝试做的事情。另外,请确保您的 IE 设置为默认设置,然后重试。【参考方案3】:

试试这个:

<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 作为唯一的密码保护充其量是幼稚的。

【讨论】:

在这种情况下不应该让它失败。 您好,感谢您的想法,但在我更改后它仍然不适用于 IE。请问还有什么想法吗?干杯 对我来说在 IE8 上运行良好。 Marcel 是正确的——我的修改并没有什么不同。也许如果你能告诉我们“什么”对你不起作用,那会有所帮助。 你能检查一下原始描述吗,我添加了更多关于它如何在 IE 上无法运行的详细信息,并制作了一个测试页面。谢谢 测试页面在 IE 中对我来说可以正常工作,使用密码“wen”

以上是关于我的 Javascript 代码在 IE 中无法运行,但在其他浏览器中运行良好的主要内容,如果未能解决你的问题,请参考以下文章

Javascript/ jQuery:以 CSV 格式导出数据在 IE 中不起作用

为啥我的 javascript 箭头函数在 Edge/IE 中不起作用?

表单/JavaScript 无法在 IE 11 上运行并出现错误 DOM7011

我的网站总是崩溃 IE,无法调试

IE 中止外部 javascript 文件请求

javascript 动态样式添加