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

场景: 子页面处理完成后,关闭子页面刷新父页面。

        Response.Write("<script>window.opener.location.href=window.opener.location.href;window.close();</script>");

       发现父页面有时刷新不了,问题:在父页面先进行其他js操作,再打开子页面关闭后,父页面不会刷新。

       办法:父页面其他js操作后刷新页面。在打开子页面方法可行。(其他的办法)

       可是有时候父页面不刷新。window.location.href = window.location.href。

       换用:window.location.reload(); 再次刷新父页面的时候会有提示框。

解决办法:

-----------------------------------------------转过来的

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


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

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

 

Js代码
<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#"

成为了一个锚点。

我的解决方法也很简单:


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


替Url中的换所有#

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

PS:虽然只是一个小问题,但开发时还是要注意。

 

转自 :http://blog.csdn.net/opnmzxcvb/article/details/4542500

posted @ 2012-01-13 13:22  Vinton.Liu  阅读(4699)  评论(0)    收藏  举报