父子頁面相互呼叫總結

2021-08-25 02:16:14 字數 1320 閱讀 5161

一般情況下,我們可以使用iframe、window的open、showmodaldialog、showmodelessdialog方法這四種方式開啟乙個子視窗。(showmodaldialog、showmodelessdialog是ie獨有的。)

下面分這四種方式來討論如何父子頁面互相呼叫。

在這種情況下,子頁面直接通過parent.var就可以對父頁面的變數和方法進行操作。

父頁面可以通過拿到iframe的contentwindow物件來訪問子頁面的window。

父頁面**,檔名為iframe.html。

拿到子頁面的變數

子頁面**,檔名為iframe.child.html。

我是在iframe中的子窗體。

拿到父頁面的testvar

使用window.open開啟的子頁面,在子頁面中可以通過window.opener來訪問父頁面的window物件。

在父頁面中,可以通過window.open方法的返回值拿到子頁面的window,就可以操作子頁面的變數和方法。

父頁面**,檔名為window.open.html。

使用window.open開啟子頁面

拿到子頁面的變數

子頁面**,檔名為window.open.child.html。

使用showmodaldialog開啟的子頁面,如果想訪問父頁面的window,需要在執行showmodaldialog方法的時候,把父頁面的window當作引數傳遞過去。見父頁面的**。

因為showmodaldialog是阻塞的,父頁面的**在子頁面不關閉之前無法繼續執行,所以只能通過returnvalue拿到子頁面的變數,見子頁面的**。

父頁面**,檔名為showmodaldialog.html。

opendialog

子頁面**,檔名為showmodaldialog.child.html。

我是使用showmodaldialog開啟的子頁面。

getparent

closeme

使用showmodelessdialog開啟的子頁面,同樣需要在執行方法的時候,把父頁面的window當作引數傳遞過去。

但不同之處在於showmodelessdialog會直接返回子頁面的window物件,不是阻塞的,可以直接對子頁面的方法和變數進行訪問。

父頁面**,檔名為showmodelessdialog.html:

opendialog

子頁面**,檔名為showmodelessdialog.html。

我是使用showmodaldialog開啟的子頁面。

getparent

closeme

iFrame父子頁面相互呼叫

子頁面 父頁面 parent.aparent.getb id window.parent.document id為父頁面元素 jq btnok parent.document click window.parent.document.getelementbyid id window.parent.d...

iframe父子頁面相互呼叫方法,相互獲取元素

父頁面獲取子頁面 var childwin document.getelementbyid setiframe contentwindow 獲取子頁面視窗物件 childwin.sendsetdata 呼叫子頁面方法 子頁面獲取父頁面並呼叫父頁面的方法 var parinp window.paren...

js父子頁面相互呼叫變數及方法

原文 1 子頁面呼叫父頁面的方法或者變數 window.parent.方法 或者變數名 window.parent相當於定位到父頁面 之後的操作和在父頁面中寫 一樣寫 window.parent.aa 調取aa函式 window.parent.bb 調取bb變數 例如 想在子頁面中得到id為aaa的...