您的位置:首页 > 其它

window.location.href = window.location.href刷新页面的问题

2009-09-11 13:53 459 查看
论window.location.href = window.location.href刷新页面的问题

在JS中可以用window.location.href = window.location.href来刷新页面(当然还有很多其他的方法),

在使用这个方法刷新页面的时候回出现问题,如下:

Java代码
<body onload='alert("aaa");'>
<script>function refresh()
{
window.location.href = window.location.href;
}
</script>

<a href ='#'>###</a>
<input type ='button' value='button' onclick='refresh();' />
</body>
<body onload='alert("aaa");'>
<script>function refresh()
{
window.location.href = window.location.href;
}
</script>

<a href ='#'>###</a>
<input type ='button' value='button' onclick='refresh();' />
</body>

分析这段代码你会发现,当点击###后,再点击Button页面不会刷新。

想必看到这里你已经知道问题所在,就是在点击###后,Url上会加上一个#,

于是refresh()方法就变成了 window.location.href ="www.something.com/test.aspx#"

成为了一个锚点。

我的解决方法也很简单:

Java代码
window.location.href = window.location.href.replace(/#/g,'');
window.location.href = window.location.href.replace(/#/g,'');

替Url中的换所有#

一般来说这样替换不会有问题,url中一般不含有#,替换后也不会导致链接失效。

PS:虽然只是一个小问题,但开发时还是要注意。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: