由于某种原因,下面的代码在尝试重定向时不起作用。我尝试过其他几种方法,比如window.location.href等等。唯一有效的是window.open ("")
,但是当我需要它在同一个窗口时,这将在新窗口中打开一个页面。如果我window.open("", "_self")
那么它再也不起作用了。如果我用window.location
替换alert
它可以正常工作,所以我认为整体代码是正常的,只是阻止它在同一页面上重定向的东西。此问题也出现在我的Windows Chrome和Mac Firefox上。
<html>
<head>
<script type="text/javascript">
function checkAnswers(){
getElementById("myQuiz");
if(myQuiz.elements[1].checked){
window.location = "www.google.com";
}else{
alert("Failed");
}
};
</script>
</head>
<body>
<img src="Castle.JPG" />
<form id="myQuiz" onsubmit="checkAnswers()" action="">
<p>Name the country this castle is located in?
<br/>
<input type="radio" name="radiobutton" value="A"/>
<label>England</label>
<input type="radio" name="radiobutton" value="B"/>
<label>Ireland</label>
<input type="radio" name="radiobutton" value="C"/>
<label>Spain</label>
<input type="radio" name="radiobutton" value="D"/>
<label>France</label>
<input type="submit" name="submit" value="Submit"/>
<input type="reset" name="reset" value="Reset"/>
</p>
</form>
</body>
</html>
答案 0 :(得分:13)
将js更改为:
function checkAnswers()
{
var myQuiz=document.getElementById("myQuiz");
if (myQuiz.elements[1].checked) {
window.location.href = "http://www.google.com";
}
else {
alert("Failed");
}
return false;
};
并改变:
<form id="myQuiz" onsubmit="checkAnswers()" action="">
到
<form id="myQuiz" onsubmit="return checkAnswers();" action="">
答案 1 :(得分:3)
更改位置时,必须为其指定绝对网址:
location.href = '/some_page_on_my_site';
或者:
location.href = 'http://www.google.com';
或者:
location.href = '//www.google.com';
最后一个将转到http或https,具体取决于当前的方案。谢谢@Derek
答案 2 :(得分:2)
运行时:
window.location ="www.google.com";
你是在相对于当前的requestURI运行它。因此,如果您在http://example.com页面上,那么您正尝试重定向到:
http://example.com/www.google.com
相反,只需记住包含协议:
window.location ="http://www.google.com";
请记住,window.location不是您的地址栏,旨在处理在地址栏中输入网址的非技术人员。使用window.location,您必须明确包含http://。
答案 3 :(得分:1)
window.location
中使用的网址是本地的;您需要添加网址的http://
部分。
答案 4 :(得分:1)
您忘记分配myQuiz变量
var myQuiz = document.getElementById( "myQuiz" );
您还需要在网址的开头添加http://
。因为,否则就是相对网址。
答案 5 :(得分:1)
2018
多浏览器:野生动物园,Chrome,Firefox:
仅此一项工作
window.location.replace(url)
另一个尝试将URL分配给window.location或window.location的选项失败
答案 6 :(得分:-1)
<script type="text/javascript">
function checkAnswers(){
var myQuiz = document.getElementById( "myQuiz" );
if (myQuiz.elements[1].checked){ alert("123");
window.location = "www.google.com";
}else{
alert("Failed");
}
};
</script>
</head>
<body>
<img src="Castle.JPG" />
<form id="myQuiz" onsubmit="return checkAnswers()" action="">
<p>Name the country this castle is located in?
<br/>
<input type="radio" name="radiobutton" value="A"/>
<label>England</label>
<input type="radio" name="radiobutton" value="B"/>
<label>Ireland</label>
<input type="radio" name="radiobutton" value="C"/>
<label>Spain</label>
<input type="radio" name="radiobutton" value="D"/>
<label>France</label>
<input type="submit" name="submit" value="Submit"/>
<input type="reset" name="reset" value="Reset"/>
</p>
</form>
</body>
答案 7 :(得分:-1)
问题应该是调用没有相应对象的方法..将javascript更改为如下所示... getElementById(“myQuiz”)是HTML文档对象的一个方法。所以在javascript中,要使用您必须将此方法附加到要对其执行操作的对象。记住getElementById()不是一个javascript方法。因此,当你执行document.getElementById(“myQuiz”)时,你告诉javascript去文档对象(即HTML)运行方法getElementById(“myQuiz”)。此方法返回JS一个元素。从DOM开始,所有HTML元素都是Objects ..所以,我们有一个Obj_Form,它是来自HTML的元素Object ..
function checkAnswers(){
var Obj_Form=document.getElementById("myQuiz");
if(Obj_Form.elements[1].checked){
window.location = "http://www.google.com";
}
else{ alert("Failed");
}
}