導航:首頁 > 編程語言 > js重新載入父窗體

js重新載入父窗體

發布時間:2023-01-28 14:25:10

javascript中的opener.reload()方法的問題。

很明顯,你是利用你窗口打開的子窗口,然後在父窗口中引用子窗口的元素。這種方法很不錯,但是你對於HTML工作是少了一點了解。

opener.location.reload()表示讓子窗口重新載入,而後立即使用opener.document.getElementXX獲取子窗口元素是不可能成功的。因為子窗口載入需要時間,而在子窗口未載入完成時,你不能保證你要的元素已經載入完成的。所以想成功只有等待子窗口載入完成才可以!做一個延時或是查詢是很有效的辦法。

延時:setTimeout("alert(opener.document.getElementById('<%=id%>'))",1000);,這種想法就是讓其1000毫秒後再去執行alert語句,這時子窗口已經載入完成了。可以正常取到值,但說實在的,這種方式不是一種很好的方法。因為我不能確定子窗口是否能在1秒內完成,所以我只好使用2秒或是更大的值,這時不論你使用的值是多少,對於等待來說都是在浪費時間。假設正常一般是1秒完成,我不得不設這個值為2000毫秒,因為必須考慮1秒只是一個平均值,偶然是1。5秒呢?

別一種辦法是查詢!
換句話說,讓其每50毫秒或是更短時間內取一次值,如果取出的是null則繼續取值,否則就會取出正常值,這時停止取值就可以了!

值得注意的是,我這里的辦法要小心,setTimeout或者setInterval也好,本句執行延時,並不是說該語句會延時。我的意思是:
setTimeOut("var a=i;",1000);表示的意思是1000ms後執行該語句,但是一定要注意的是,setTimeout後面的語句卻不會延時,也就是立即執行的,所以如果下面的語句是對變數的處理是錯誤的。如:
setTimeOut("var a=1;",1000);
document.write(a);//該語句出錯!

原因就是執行setTimeOut("var a=1;",1000);後會立即執行document.write(a);語句的,便var a=1;卻要在1000ms後執行的,所以第二句的引用時,由於時間差的問題,a還沒有被初始化。這就是做延時或是查詢時要注意的地方。

當然,我所說的查詢是一種循環查詢,但在程序上我們對硬體的查詢等,都是基於這樣的一種思想的。查詢的好處就是返回時即時,也就是說不管你的程序運行多長時間,它會在第一時間達到,時間誤差僅是你所設置的值,如果你要求在子窗口載入完成後20ms內通知你,就將setTimeout參數設為20ms即可。便它不利的地方是查詢是佔用CPU的,佔用系統資源,當然,如果你想載入完成時立即使用,可以使用一個循環,而不用setTimeout或setInterval。但時間越小開銷越大。

所以,有時我們引入另一種方法,就是中斷。你可以在父窗口中提供一個變數,然後子窗口載入完成後,將父窗口的變數更改一下,以達到通知父窗口,而利用這個值,父窗口可以知道子窗口是否已經完成載入。也就是說你參考一下程序的同步問題就可以解決了。但HTML還有一個事件表示目前窗口是否載入完成的。好像是load或是afterLoad,具體的我很少使用忘記了,但這個只是測試窗口是否載入完成,而程序的同步還是解決問題的通用方法的。

② iframe中的js如何刷新父窗口中div元素

為什麼要用2個iframe。。還要用1個iframe來控制另外1個iframe。。這樣就算成功也會很卡吧。。。。
jsp我記得有專個include你可以嘗試屬下。。。。

靜態頁面中如果是ifame的內容要控制父級元素有1個方法,在前面加parent就可以了。onclick="parent.xx()"。。
windows.parent.xxxxx這個我已經不能理解了-。-~~

能幫到1點是1點吧。。。。。

③ JS刷新父窗口的幾種方式

浮層內嵌iframe及frame集合窗口,刷新父頁面的多種方法<script language=JavaScript> parent.location.reload(); </script> <script language=JavaScript>parent.location.reload();</script>彈出子頁面<script language=JavaScript> window.opener.location.reload(); </script> <script language=JavaScript>window.opener.location.reload();</script> 子窗口刷新父窗口<script language=JavaScript> self.opener.location.reload(); </script> <script language=JavaScript>self.opener.location.reload();</script> 刷新以open()方法打開的窗口<script language=JavaScript> window.opener.location.href=window.opener.location.href; </script> <script language=JavaScript>window.opener.location.href=window.opener.location.href;</script> 刷新以winodw.showModelDialog()方法打開的窗口Java代碼<script language="javascript"> window.parent.dialogArguments.document.execCommand('Refresh'); </script>

④ js怎麼實現在子窗體刷新父窗口的時候,父窗口的onload不執行

onload事件始終觸發,你說的onload事件綁定的事件處理程序不執行,那很簡單將處理程序與onload事件解綁即可。比如window.onload=fn(){}; 你直接window.onload=fn2(){}即可 因為是會覆蓋的 掉的或者等於null也行。

⑤ js如何刷新父頁面

用iframe、彈出子頁面刷新父頁面iframe<script language=JavaScript> parent.location.reload(); </script>彈出子頁面<script language=JavaScript> window.opener.location.reload(); </script>子窗口刷新父窗口<script language=JavaScript> </script>在內framset框架中A窗口調用容B窗口的JS方法:一般方法調用: A窗口中:window.parent.frames["result"].dialog_waiting.open("正在查詢數據");//鎖屏效果; 說明:其中result是指B窗口所在fram的name屬性,dialog_waiting.open("正在查詢數據")為B窗口中的JS方法。 A窗口刷新B窗口:window.parent.frames["result"].location.reload();

⑥ js 關閉子窗體時如何刷新父窗體

在父窗體里邊寫上一個腳本
<script>
function reflash()
{
window.location.href=window.location.href;
}
</script>
在關閉子窗體的腳本寫
Response.Write("<script>window.close();window.opener.reflash();window.opener=null;</script>");
之前我就這么做過的,可能腳本的某個地方寫錯了,你需要測試一下。

⑦ asp.net中關閉子窗體後如何刷新父窗體,彈出的子窗體

建議用模態窗體,代碼操作如下(js):
var result = window.showModalDialog(url);
//接下來執行刷新操作

⑧ javascript 父窗口刷新子窗口問題

沒有辦法。

引起的原因很簡單,

因為你刷新父窗口的話 , 刷新後的父窗口不再是子窗口的opener,
刷新了 等於是另創建了一個 對象。

即 刷新後的父窗口 就不會認那個子窗口,因為新的父窗口
根本沒有打開過子窗口。

⑨ Javascript 子窗口調用父窗口js方法

JS子窗口調用父窗口的方法:

框架(iframe)形式,這時用到是window.parent,window.parent能獲取一個框架的父窗口或父框架。頂層窗口的parent引用的是它本身。可以用這一點特性來判斷這個窗口是否是頂層窗口。詳情如下:

1、1.html代表的是父窗口

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""

<htmlxmlns="

<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>父頁面</title>
</head>
<body>
<formname="form1"id="form1">
<inputtype="text"name="username"id="username"/>
</form>
<iframesrc="2.html"width="100%">
</body>
</html

2、2.html代表的子窗口

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""

<htmlxmlns="

<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>子頁面</title>
<scripttype="text/javascript">
functionchangeValue(val){
var_parentWin=window.parent;
_parentWin.form1.username.value=val;
}
</script>
</head>
<body>
<inputtype="file"name="filename"onchange="changeValue(this.value);"/>
</body>
</html>

這時在子窗口(iframe窗口)所做的改變,會改變父窗口中username的值。

⑩ JS 如何關閉彈出窗口,刷新父窗口

frame.contentWindow.location.reload(true);

所以呢window.top.mainFrame.contentWindow.location.reload(true);

閱讀全文

與js重新載入父窗體相關的資料

熱點內容
照片文件名中的數字代表什麼 瀏覽:44
cs6裁切工具 瀏覽:235
資料庫超過多少數據會卡 瀏覽:858
CAD落圖文件 瀏覽:125
怎樣翻譯文件內容 瀏覽:679
戴爾r910安裝linux 瀏覽:69
有線電視升級失敗 瀏覽:560
火絨安全把文件刪掉了在哪裡找 瀏覽:503
手機qq網路狀態方框 瀏覽:225
哪裡有文件紙袋 瀏覽:873
復制的東西能不能粘貼到空文件夾 瀏覽:876
酒店沒有網路如何繳費 瀏覽:380
win10開機滾動很久 瀏覽:520
可對元數據實例進行的操作有什麼 瀏覽:934
什麼後綴的文件kit 瀏覽:295
word行書字體庫下載 瀏覽:579
iosuc版本歷史版本 瀏覽:14
電影字幕文件製作軟體 瀏覽:723
windows10免密碼登錄 瀏覽:762
iphone5s跑步記步 瀏覽:978

友情鏈接