代码用于在网页上添加密码,该密码适用于所有其他浏览器,但不适用于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.pageresource.com/jscript/jpass.htm";
}
//-->
</SCRIPT>
</HEAD>
答案 0 :(得分:4)
window.location 在IE6中不起作用。您可能需要 document.location 。
if ("cool" == prompt('Please enter your password to view this page!', '')) {
alert('Password Correct! Click OK to enter!');
} else {
document.location = "http://www.pageresource.com/jscript/jpass.htm";
}
答案 1 :(得分:4)
IE7默认禁用提示功能。
正如我之前的每个人都说过,除非这只是一个学习javascript类型的尝试 - “保护”是没用的。所有人都要做的就是禁用JS和/或查看你的源,以便重定向。
答案 2 :(得分:1)
好的,首先我希望你这样做是为了玩javascript,因为任何人都可以通过查看源代码来快速绕过你的安全性。要管理对站点的登录访问,您应该使用服务器端实现,如php,jsp,asp等。这些站点使用密码登录并在普通用户看不到的服务器上进行比较。无论如何,下面的代码应该有效:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>HTML Test</title>
<script type="text/javascript">
function check()
{
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
document.location="http://www.pageresource.com/jscript/jpass.htm";
}
</script>
</head>
<body onload="check()">
</body>
</html>
答案 3 :(得分:0)
它看起来像你的第一行js:
<!--hide
应该是:
// <!-- hide
但看起来你可能还有其他问题。先尝试一下!
答案 4 :(得分:0)
尝试在if:
周围缠绕花括号if (password==pass1){
alert('Password Correct! Click OK to enter!');
} else {
window.location="http://www.pageresource.com/jscript/jpass.htm";
}
你可能不再需要那些隐藏的东西了。祝你学习顺利。
答案 5 :(得分:0)
如果我的JavaScript只在IE中中断,我做的第一件事就是通过JSLint运行它,这是一个免费的工具,可以检查你的JS代码是否有错误。这可能会揭示导致IE窒息的原因。
答案 6 :(得分:0)
不要那样做!您正在向用户发送密码。所有用户必须做的是“查看源代码”,它就在那里。或者,用户可以从Javascript源获取密码隐藏的任何信息。
客户端验证对于数据格式之类的东西非常有用,但是任何敏感的东西都不应该在客户端完成,并且所有数据都应该在服务器上再次验证。请记住,恶意用户可以向您发送任何内容,完全绕过您的Javascript。
答案 7 :(得分:0)
这里的代码
if (password==pass1)
alert('Password Correct! Click OK to enter!');
else
{
window.location="http://www.pageresource.com/jscript/jpass.htm";
}
首先用花括号括起alert
位来读取
if (password==pass1){
alert('Password Correct! Click OK to enter!');
}
其次,与php和其他C语言不同,不要在新行中开始括号...
在javascript中,当解释器评估脚本时,它会查找指定语句结尾的分号,
如果未找到分号,则最接近的上一个换行符将替换为分号
因此,您的else
块被评估为:
else;
{;
window.location="http://www.pageresource.com/jscript/jpass.htm";
};
而是将其写为
else{
window.location="http://www.pageresource.com/jscript/jpass.htm";
}
答案 8 :(得分:0)
当我在所有IE版本中使用IETester的“打开网址”时,失败可以在输入提示的第一个窗口的所有窗口中工作,无论是使用IE窗口。
但是,当单独测试 时,它在所有已知浏览器(包括IE6 / 7/8)中都可以正常工作。我没有按照here概述的代码进行任何更改。
所以你的实际问题不在于提供的信息。
毋庸置疑,这种方法远来自安全。
答案 9 :(得分:0)
所以,要么:
if (password==pass1) {
alert('Password Correct! Click OK to enter!');
} else {
window.location="http://www.pageresource.com/jscript/jpass.htm";
}
..或者这个(虽然我从不以这种方式亲自编码)..
if (password==pass1)
alert('Password Correct! Click OK to enter!');
else
window.location="http://www.pageresource.com/jscript/jpass.htm";
应该有用。
另外,请尝试 window.location.href ,而不只是 window.location 。
window.location.href = "http://www.pageresource.com/jscript/jpass.htm";
当然,正如其他人提到的,你的方法不安全在客户端使用密码(&lt;! - hide不会隐藏源代码视图中的javascript )。
希望这有帮助 -
答案 10 :(得分:0)
从window.location
到document.location
,您需要更改代码的无错误跨浏览器实现。除非您真正引用窗口对象,否则切勿使用窗口;示例:window.close()