这里有很多相同的问题。我尝试了所有解决方案 - 没有任何帮助。
我想用javascript在某个标签页中打开新页面。这是我的HTML:
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" ></script>
<script src="functions.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link href="css.css" rel="stylesheet" type="text/css" />
</head>
<body>
...
<label>
<input type="image" name="imageField" id="loginClient" onclick="testUrl()" src="images/index_33.gif" />
</label>
...
</body>
</html>
这是我的functions.js:
function testUrl()
{
window.location = "content.html";
}
function loginClient()
...//more functions
我也试过其他方法:
window.location.replace("content.html")
top.location="content.html"
window.location.assign("content.html")
window.open("content.html", "_self")
window.location.href="content.html"
window.event.returnValue = false;
window.location = "content.html";
setTimeout(function(){window.location.assign("content.html");return false;},500)
没有用,我在Opera,Firefox(所有在Windows中)和Chrome(Debian)中都尝试过。 但是如果我设置它就可以了:
window.open("content.html")
但是在新标签中,不是解决方案,我需要在同一个标签中。
但是,如果我尝试使用Firebug进行调试,请始终单击&#34;进入&#34;比所有解决方案工作。如果我在重定向之前设置alert(),它也可以工作。
控制台显示没有错误。 我不知道,帮助。
已解决:感谢@lonesomeday!
这是解决方案:
$(document).ready(function(){
$("#loginClient").click(function(event){
event.preventDefault();
window.location = "content.html";
});
});
答案 0 :(得分:6)
您在onclick
元素上获得了此<input type="image">
属性。图像输入实际上是submit
按钮。单击它时,它将被激活,并提交表单。提交表单后,它会取消任何正在进行的HTTP请求,例如window.location
来电。
因此,您需要阻止表单提交继续进行。
快速而肮脏的方法是从事件处理程序返回false
。像这样:
onclick="return testUrl()"
使用JS:
function testUrl()
{
window.location = "content.html";
return false;
}
更好的方法是使用Javascript绑定事件处理程序并使用event.preventDefault
。