天天看點

JS 重新整理頁面所有方法

Javascript 重新整理頁面

window.location.reload();

使用window.open()彈出的彈出視窗,重新整理父視窗

非模态重新整理父頁面 :window.opener.location.reload()

使用window.showDialog彈出的模式視窗

模态重新整理父頁面   :window.dialogArguments.location.reload();

先來看一個簡單的例子: 

   下面以三個頁面分别命名為frame.html、top.html、bottom.html為例來具體說明如何做。 

   frame.html 由上(top.html)下(bottom.html)兩個頁面組成,代碼如下: 

   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 

   <HTML> 

   <HEAD> 

   <TITLE> frame </TITLE> 

   </HEAD> 

   <frameset rows="50%,50%"> 

   <frame name=top src="top.html"> 

   <frame name=bottom src="bottom.html"> 

   </frameset> 

   </HTML> 

   現在假設top.html (即上面的頁面) 有七個button來實作對bottom.html (即下面的頁面) 的重新整理,可以用以下七種語句,哪個好用自己看着辦了。 

   語句1. window.parent.frames[1].location.reload(); 

   語句2. window.parent.frames.bottom.location.reload(); 

   語句3. window.parent.frames["bottom"].location.reload(); 

   語句4. window.parent.frames.item(1).location.reload(); 

   語句5. window.parent.frames.item('bottom').location.reload(); 

   語句6. window.parent.bottom.location.reload(); 

   語句7. window.parent['bottom'].location.reload(); 

   top.html 頁面的代碼如下: 

   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 

   <HTML> 

   <HEAD> 

   <TITLE> top.html </TITLE> 

   </HEAD> 

   <BODY> 

   <input type=button value="重新整理1" οnclick="window.parent.frames[1].location.reload()"><br> 

   <input type=button value="重新整理2" οnclick="window.parent.frames.bottom.location.reload()"><br> 

   <input type=button value="重新整理3" οnclick="window.parent.frames['bottom'].location.reload()"><br> 

   <input type=button value="重新整理4" οnclick="window.parent.frames.item(1).location.reload()"><br> 

   <input type=button value="重新整理5" οnclick="window.parent.frames.item('bottom').location.reload()"><br> 

   <input type=button value="重新整理6" οnclick="window.parent.bottom.location.reload()"><br> 

   <input type=button value="重新整理7" οnclick="window.parent['bottom'].location.reload()"><br> 

   </BODY> 

   </HTML> 

   下面是bottom.html頁面源代碼,為了證明下方頁面的确被重新整理了,在裝載完頁面彈出一個對話框。 

   bottom.html 頁面的代碼如下: 

   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 

   <HTML> 

   <HEAD> 

   <TITLE> bottom.html </TITLE> 

   </HEAD> 

   <BODY οnlοad="alert('我被加載了!')"> 

   <h1>This is the content in bottom.html.</h1> 

   </BODY> 

   </HTML> 

   解釋一下: 

   1.window指代的是目前頁面,例如對于此例它指的是top.html頁面。 

   2.parent指的是目前頁面的父頁面,也就是包含它的架構頁面。例如對于此例它指的是framedemo.html。 

   3.frames是window對象,是一個數組。代表着該架構内所有子頁面。 

   4.item是方法。傳回數組裡面的元素。 

   5.如果子頁面也是個架構頁面,裡面還是其它的子頁面,那麼上面的有些方法可能不行。 

   附: 

   Javascript重新整理頁面的幾種方法: 

   1 history.go(0) 

   2 location.reload() 

   3 location=location 

   4 location.assign(location) 

   5 document.execCommand('Refresh') 

   6 window.navigate(location) 

   7 location.replace(location) 

   8 document.URL=location.href 

   自動重新整理頁面的方法: 

   1.頁面自動重新整理:把如下代碼加入<head>區域中 

   <meta http-equiv="refresh" content="20"> 

   其中20指每隔20秒重新整理一次頁面. 

   2.頁面自動跳轉:把如下代碼加入<head>區域中 

   <meta http-equiv="refresh" content="20;url=http://www.wyxg.com"> 

   其中20指隔20秒後跳轉到http://www.wyxg.com頁面 

   3.頁面自動重新整理js版 

   <script language="JavaScript"> 

   function myrefresh() 

   { 

   window.location.reload(); 

   } 

   setTimeout('myrefresh()',1000); //指定1秒重新整理一次 

   </script> 

   ASP.NET如何輸出重新整理父視窗腳本語句 

   1. this.response.write("<script>opener.location.reload();</script>"); 

   2. this.response.write("<script>opener.window.location.href = opener.window.location.href;</script>"); 

   3. Response.Write("<script language=javascript>opener.window.navigate(''你要重新整理的頁.asp'');</script>") 

   JS重新整理架構的腳本語句 

   //如何重新整理包含該架構的頁面用 

   <script language=JavaScript> 

   parent.location.reload(); 

   </script> 

   //子視窗重新整理父視窗 

   <script language=JavaScript> 

   self.opener.location.reload(); 

   </script> 

   ( 或 <a href="javascript:opener.location.reload()" target="_blank" rel="external nofollow" >重新整理</a> ) 

   //如何重新整理另一個架構的頁面用 

   <script language=JavaScript> 

   parent.另一FrameID.location.reload(); 

   </script> 

   如果想關閉視窗時重新整理或者想開窗時重新整理的話,在<body>中調用以下語句即可。 

   <body οnlοad="opener.location.reload()"> 開窗時重新整理 

   <body onUnload="opener.location.reload()"> 關閉時重新整理 

   <script language="javascript"> 

   window.opener.document.location.reload() 

   </script>頁面重新整理彈出重試問題解決方法如果重新整理一個已經送出過的頁面時,系統總是會提示一個 "重試或取消”的對話框.,如果是一個普通的頁面,好象也無所謂,有就有,大不了多點一下.但是當我們是在子窗體中重新整理父窗體時,就顯得有點多餘了.是以就想把這個對話框給去了.找了很的辦法.總結一下.

    一, window.opener.location.reload() 如果改頁面沒送出過,這個方法好使.但是這個頁面一旦送出過後,系統就會提示"重試或取消”的對話框.

    二, window.opener.location = window.opener.location;這個方法肯定不提示,但是有個問題就是分頁顯示的時候,一重新整理總是會顯示第一頁,這個也是理所當然,因為預設請求的就是第一頁

    三, window.opener.form1.submit();這個方法也不提示了,這個方法就是自動送出頁面,繞開那個煩人提示的界面,但是如果被重新整理的頁面用到了比如gridwiew控件之類的,裡面的資料可能不會随着重新整理而發生變化,原因就是gridwiew的資料綁定是在某個控件的事件中進行,而頁面是通過submit()送出的,不會觸發該控件的事件.gridwiew中的資料也是通過讀取viewstat中内容獲得的,是以在重新整理過程中資料不會發生變化.

    四, window.opener.__doPostBack(" Control","");其中 Control 是控件ID,這個方法就是克服了三的缺點,不用.opener.form1.submit()這樣直接送出.不僅讓頁面自動送出,而且還要想辦法讓控件的事件也執行.

   注意第四種方法也不是完美的,有的頁面是沒有這樣的控件,有的頁面有這個控件但也不能觸發資料綁定事件.比如頁面資料是随下框内容發生變化的那種頁面.因為頁面資料是否重新綁定取決于下拉框中内容是否發生變化.而打開子窗體前後時下拉框内容肯定沒有變化,是以頁面内容也不會變化.       

    五,針對四,我們可以在父頁面用點小技巧,比如在Page_Load中綁定資料時不加IsPostBack判斷,但是不好就不好在點按鈕時同樣的資料會綁定兩遍.

如果頁面沒有form,則不會彈出提示視窗。如果頁面有form表單,a)< form method="post" ...> 會彈出提示視窗b)< form method="get" ...> 不會彈出

繼續閱讀