2013-04-02 49 views
0

在請求的頁面開始加載之前,是否可以將方法添加到動態創建的iframe的Window對象?我希望這樣做雖然iframe.contentWindow.myMethod = function() { },但是iframe.contentWindow在頁面加載之前是NULL。在頁面開始加載之前將方法添加到javascript的Window對象

我可以在onload事件觸發時添加方法,但有些頁面會對我添加的方法進行內聯調用。由於瀏覽器在收到「方法不存在」時會執行代碼,因此會引發錯誤。

我希望有一點我可以在內容下載和處理之前立即訪問窗口對象。

回答

3

我希望有一點我可以在內容下載和處理之前立即訪問窗口對象。

我非常懷疑有。也許你可以修改正在加載的頁面,以便他們在父窗口中調用方法,而你知道你已經定義了方法。例如,而不是將它們這樣做的:

someMethod("some arg"); 

他們會做

parent.someMethod("some arg"); 

...其中someMethod是打開的窗口內的全局函數。

Live Example | Source | Source of iframe

+0

這正是我目前正在做的,我希望擺脫對父母的呼籲,純粹爲了保持用法更清潔。看起來我運氣不好:( – WDuffy

+0

@WDuffy:好吧,如果你控制了正在加載的頁面,他們可以自己定義這個函數,或者當然,你可以把'var someMethod = parent.someMethod;'放在然後他們只是使用'someMethod(「一些arg」);'來進行調用,JavaScript如果對這些事情不夠靈活,則什麼也不是。:-) –

+1

這個downvoter喜歡分享一些關於你爲什麼這麼想的反饋這是「無用」(使用downvote按鈕中的短語)? –

-1

您不能修改頁面前的頁面啓動加載 - 沒有什麼可以修改的。您可以修改它,同時加載 - 使用<head>頂部的<script>標籤直接執行,而不是等到onload。儘管如此,你最快可以做到。

相關問題