在做web開發的時候有時候,一般都會用到。方法不止一種,看看你掌握了幾種?
重新整理頁面常用方法
history.go(0)
location.reload()
location=location
location.assign(location)
document.execCommand('Refresh')
window.navigate(location)
location.replace(location)
document.URL=location.href
今天在項目中發現在chrome下重新整理頁面既然無效了,經過反覆測試發現是“#”字元阻止頁面重新整理
不理解?先來看下demo
代碼如下 |
複製代碼 |
//javascript $(function(){ $('#reload').show('slow'); $('#o1').click(function(){ location = location }) $('#o2').click(function(){ history.go(0) }) $('#o3').click(function(){ location.reload() }) $('#o4').click(function(){ location = location }) $('#o5').click(function(){ history.go(0) }) $('#o6').click(function(){ location.reload() }) $('#o7').click(function(){ window.location = window.location return false }) $('#o8').click(function(){ history.go(0) return false }) $('#o9').click(function(){ location.reload() return false }) }) //html <div id="reload">頁面重新整理了</div> <a href="#" id="o1">樣本1</a> <a href="#" id="o2">樣本2</a> <a href="#" id="o3">樣本3</a> <a href="javascript:;" id="o4">樣本4</a> <a href="javascript:;" id="o5">樣本5</a> <a href="javascript:;" id="o6">樣本6</a> <a href="#" id="o7">樣本7</a> <a href="#" id="o8">樣本8</a> <a href="#" id="o9">樣本9</a> |
測試結果
•firefox 所有樣本重新整理正常
•chrome 樣本2重新整理無效
•opera 所有樣本重新整理正常
•IE 所有樣本重新整理正常,樣本2會在地址欄增加“#”字元
這一次在地址欄增加“#”字元,再一次測試結果如下:
•firefox 樣本1、樣本4、樣本7重新整理無效,其餘重新整理正常
•chrome 樣本3、樣本6、樣本9重新整理正常,其餘重新整理無效
•opera 樣本1、樣本4、樣本7重新整理無效,其餘重新整理正常
•IE 樣本1、樣本4、樣本7重新整理無效,其餘重新整理正常
看來這一次是chrome耍個性了,在這裡設計蜂巢提醒大家注意以下兩點:
1.盡量少用“#”來作為空白連結,使用javascript:;等來代替。
2.只在適當的時候使用location.reload()重新整理頁面。因為該方法會強制清除緩衝,增加頁面載入的時間。
自動重新整理頁面的方法:
1.頁面自動重新整理:把如下代碼加入<head>地區中
代碼如下 |
複製代碼 |
<meta http-equiv="refresh" content="20">
|
其中20指每隔20秒重新整理一次頁面.
2.頁面自動跳轉:把如下代碼加入<head>地區中
代碼如下 |
複製代碼 |
<meta http-equiv="refresh" content="20;url=http://www.111cn.net">
|
其中20指隔20秒後跳轉到http://www.111cn.net頁面
3.頁面自動重新整理js版
代碼如下 |
複製代碼 |
<script language="JavaScript"> function myrefresh() { window.location.reload(); } setTimeout('myrefresh()',1000); //指定1秒重新整理一次 </script> |
JS重新整理架構的指令碼語句
//如何重新整理包含該架構的頁面用
代碼如下 |
複製代碼 |
<script language=JavaScript> parent.location.reload(); </script> |
//子視窗重新整理父視窗
代碼如下 |
複製代碼 |
<script language=JavaScript> self.opener.location.reload(); </script> ( 或 <a href="javascript:opener.location.reload()">重新整理</a> ) //如何重新整理另一個架構的頁面用 <script language=JavaScript> parent.另一FrameID.location.reload(); </script> |
如果想關閉視窗時重新整理或者想開窗時重新整理的話,在<body>中調用以下語句即可。
代碼如下 |
複製代碼 |
<body onload="opener.location.reload()"> 開窗時重新整理 <body onUnload="opener.location.reload()"> 關閉時重新整理 <script language="javascript"> window.opener.document.location.reload() </script> |