我有兩個窗口:父窗口和子窗口(html頁面和iframe)。如何使用子窗口上下文執行在父窗口中定義的函數
我有一個腳本庫加載到父窗口。
我想從子窗口中重新使用此庫,而無需將相同的腳本加載到子窗口中。
這是很容易調用父窗口的功能是這樣的:
top.LibraryMethod();
但這裏有一個問題:LibraryMethod將與父窗口的執行上下文中執行。 這意味着腳本中使用的全局變量將從父窗口而不是子窗口收集。 例如,如果LibraryMethod聲明如下:
function LibraryMethod(){ alert(document.location.href); }
它會顯示從父或子窗口被稱爲相同的值,但我需要在這裏訪問的子窗口的文檔。
有一個明顯的解決方案 - 將子窗口作爲函數參數傳遞,但是這需要更改庫代碼,這是不可接受的。
因此,問題是如何從父窗口中聲明的函數訪問子窗口對象,如果從子窗口調用此函數,而不引入其他函數參數。