我试图这样做,当我去网站时,有一个按钮,当你按下它时,它会提示你输入密码是什么?&# 34;为了确定它是否正确,我使用concat字符串来获取提示答案并将.html添加到最后,我希望它重定向到(passwordtheyenter).html,所以如果他们输入&# 34;测试"作为密码,它会将它们带到" test.html"
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<script>
function testFunction() {
var str1 = prompt.("What's the password?");
var str2 = ".html";
var pass = str1.concat(str2);
}
</script>
</head>
<body>
<button onclick="testFunction()">Chat</button>
<script>
open.window(pass)
</script>
</body>
</html>
感谢。
答案 0 :(得分:2)
您的HTML / Javscript代码无法正常工作有四个主要原因。
首先,变量pass
的范围仅在函数内定义,因此只能在该函数中访问。在函数外部定义它,然后在其中设置其值。
编辑:因为pass
现在只被函数使用,所以不需要在它之外定义它。
接下来,我相信您正在尝试使用window.open()函数。你在代码中写了open.window()。
第三,你在prompt()调用
之后不小心有一段时间第四,你应该在函数中调用window.open(),这样它才能在用户实际点击按钮之前运行。
<!DOCTYPE html>
<html>
<head>
<script>
function testFunction() {
var str1 = prompt("What's the password?");
var str2 = ".html";
var pass = str1 + str2;
window.open(pass);
}
</script>
</head>
<body>
<button onclick="testFunction()">Chat</button>
</body>
</html>
答案 1 :(得分:1)
您的代码存在以下问题:
prompt.()
在语法上无效的Javascript代码。它会给你一个错误,可以在控制台中看到(你可以在大多数浏览器中点击F12打开它,或者在Opera中点击CTRL + SHIFT + I)。
open.window()
在语义上无效的Javascript代码。这不是全局变量open
。你可能想要的是window.open(...)
。
编写代码的方式没有多大意义。单击该按钮时,将调用该函数,但它不执行任何操作。底部的Javascript会给你一个错误,但即使它是有效的Javascript,它仍然会给你一个错误,因为变量pass
没有在全局范围内定义;它是在函数内部定义的。函数运行后,该变量将被遗忘。
最好在按钮上添加一个点击处理程序:
<!doctype html>
<!-- The button -->
<button id="my-button">Chat</button>
<script>
// Get the button
var myButton = document.getElementById("my-button");
// Set a click handler on the button
myButton.onclick = function () {
// Get the page
var page = prompt("What's the password?");
// Set a new location for the window; this sends the
// current page to the new page
window.location = page + ".html";
};
</script>
答案 2 :(得分:0)
bar
变量仅在pass
内定义,因此当您尝试调用testFunction
时,无法访问该变量。
尝试在open.window
中返回pass
并将结果传递给testFunction
答案 3 :(得分:0)
你可能正在寻找:
function testFunction() {
// Prompt user for input
var str1 = window.prompt("What's the password?");
// Append .html to user input
var str2 = ".html";
// Open new window with concatenated result
window.open( str1.concat(str2) );
}
然后您可以删除:
<script>
open.window(pass)
</script>
答案 4 :(得分:0)
尝试将第一个脚本标记替换为下面的标记。 建议使用标记的“type”属性定义脚本类型。
<script type="text/javascript">
function testFunction() {
var str1 = prompt("What's the password?");
window.open(str1+".html");
}
</script>