Javascript 使用location.href时出现奇怪的重定向问题
我面临一个奇怪的重定向问题 看看这个小例子:只有在重定向语句之后添加alert()调用,它才会起作用!如果我删除警报(),它将不再工作 知道为什么吗(我正在使用Firefox3) 谢谢Javascript 使用location.href时出现奇怪的重定向问题,javascript,redirect,Javascript,Redirect,我面临一个奇怪的重定向问题 看看这个小例子:只有在重定向语句之后添加alert()调用,它才会起作用!如果我删除警报(),它将不再工作 知道为什么吗(我正在使用Firefox3) 谢谢 <html> <script type="text/javascript"> function GotoPage() { location.href = "http://www.yahoo.com"; // Without this alert redirec
<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>
函数GotoPage(){
location.href=”http://www.yahoo.com";
//如果没有此警报,重定向将无法工作!!!
警惕(“你好!”);
}
去
不确定,但我认为,如果在onclick
处理程序中不返回false
,则会执行按钮的默认操作,这不是重定向
该警报会将浏览器冻结足够长的时间,以便在控件返回到按钮元素的默认行为之前进行重定向
尝试使用类似以下内容:
<button onclick="GotoPage(); return false;">Go</button>
并在onclick处理程序中返回函数返回的内容:
<button onclick="return GotoPage();">Go</button>
Go
顺便说一句:不需要
javascript:
部分。不确定,但我认为,如果在onclick
处理程序中不返回false
,则会执行按钮的默认操作,而不是重定向
该警报会将浏览器冻结足够长的时间,以便在控件返回到按钮元素的默认行为之前进行重定向
尝试使用类似以下内容:
<button onclick="GotoPage(); return false;">Go</button>
并在onclick处理程序中返回函数返回的内容:
<button onclick="return GotoPage();">Go</button>
Go
顺便说一句:不需要
javascript:
部分。我认为应该设置window.location,而不是location.href
function GotoPage() {
window.location = "http://www.yahoo.com";
}
我认为应该设置window.location,而不是location.href
function GotoPage() {
window.location = "http://www.yahoo.com";
}
您应该使用window.location.assign而不是window.location.href
有一次,我使用了类似于您的函数,但没有alert语句,当我在FireFox上尝试它时,它无法工作。在那之后,我使用函数assign()而不是分配href属性,它对我很有效。您应该使用window.location.assign而不是window.location.href
有一次,我使用了类似于您的函数,但没有alert语句,当我在FireFox上尝试它时,它无法工作。在那之后,我使用函数assign()而不是分配href属性,它对我很有效。Pascal,非常感谢!第一个选项解决了问题(其他选项没有)!!但是我仍然很好奇为什么添加alert()调用可以使它工作???无论如何,再次谢谢你!致以最诚挚的问候,不客气;;;此警报将阻止浏览器执行按钮元素的默认操作(此时,它将阻止函数结束,并将控制权返回给其调用者)。另一方面,location.href是在警报之前分配的,因此正在执行。Pascal,非常感谢!第一个选项解决了问题(其他选项没有)!!但是我仍然很好奇为什么添加alert()调用可以使它工作???无论如何,再次谢谢你!致以最诚挚的问候,不客气;;;此警报将阻止浏览器执行按钮元素的默认操作(此时,它将阻止函数结束,并将控制权返回给其调用者)。另一方面,location.href是在警报之前分配的,因此它正在被执行。实际上两者都没有。您应该指定位置对象在窗口对象中(以省去命名冲突),以及它是要设置的href属性(因为某些浏览器无法将URL直接指定给位置对象)。因此,您应该使用
window.location.href
。实际上两者都不使用。您应该指定位置对象在窗口对象中(以省去命名冲突),以及它是要设置的href属性(因为某些浏览器无法将URL直接指定给位置对象)。因此,您应该使用window.location.href
。