我面临重定向的奇怪问题......
看看这个小例子:只有在重定向句子之后添加alert()调用才有效!如果我删除警报()它不再工作!
知道为什么(我正在使用Firefox 3)?
感谢。
<html>
<script type="text/javascript">
function GotoPage() {
location.href = "http://www.yahoo.com";
// Without this alert redirection does not work!!!
alert("Hello!");
}
</script>
<body>
<form>
<button onclick="javascript:GotoPage()">Go</button>
</form>
</body>
</html>
答案 0 :(得分:4)
不确定,但我想如果你不在false
处理程序中返回onclick
,则会执行按钮的默认操作 - 而不是重定向。
警报会冻结浏览器足够长的时间,以便在控件返回到按钮元素的默认行为之前进行重定向。
尝试使用这样的东西:
<button onclick="GotoPage(); return false;">Go</button>
或者尝试修改函数,使其返回false
:
function GotoPage() {
location.href = "http://www.yahoo.com";
return false;
}
在你的onclick处理程序中返回函数返回的内容:
<button onclick="return GotoPage();">Go</button>
顺便说一句:不需要javascript:
部分。
答案 1 :(得分:0)
我相信你应该设置window.location,而不是location.href。
function GotoPage() {
window.location = "http://www.yahoo.com";
}
答案 2 :(得分:0)
您应该使用window.location.assign而不是window.location.href
有一次,我在没有警告声明的情况下使用了像你这样的功能,当我在FireFox上试用它时,它不起作用。之后,我使用函数assign()而不是分配href属性,它对我来说效果很好。