opener也就是誰打開我的,例如A頁面利用window.open彈出了B頁面窗口,那麼A頁面所在窗口就是B頁面的opener,在B頁面透過opener物件可以存取A頁面。
parent表示父窗口,例如一個A頁面利用iframe或frame呼叫B頁面,那麼A頁面所在窗口就是B頁面的parent。在JS中,window.opener只是對彈出視窗的母視窗的一個引用。例如:a.html中,透過點擊按鈕等方式window.open出一個新的視窗b.html。那麼在b.html中,就可以透過window.opener(省略寫為opener)來引用a.html,包含a.html的document等對象,操作a.html的內容。
假如這個引用失敗,那麼將會回傳null。所以在呼叫opener的物件前,要先判斷物件是否為null,否則會出現「物件為空或不存在」的JS錯誤。
範例:
aa.html
window.opener 返回的是創建當前視窗的那個視窗的引用,例如點擊了aa.htm上的一個連結而打開了bb.htm,然後我們打算在bb.htm上輸入一個值然後賦予aa.htm上的一個id為「name」的textbox中,就可以