2010-05-06 21 views
0

我在JavaScript中有一些函數f()創建一個iframe:如何調用iframe的功能,從這個IFRAME

var iframe = document.createElement("iframe"); 
$(iframe).attr({ 
    width: 0, 
    height: 0, 
    frameborder: 0, 
    src: this.options.url, 
    name: id, 
    id: id 
}); 

document.body.appendChild(iframe); 

iframe.contentWindow.f = function(data) { 
alert("test"); 
}; 

文檔在這個iframe中加載應該調用函數f():

<script ...>f();</script> 

而這在Firefox中完美運行,但Opera告訴,f()是未定義的。

有沒有解決方法?

阿德里安。

回答

1

這是一個很好的變化,有一個競爭條件,以便在設置函數之前,iframe中的文檔已完成加載。相反,將iframe文檔調用到父文檔中的功能可能會更好。

+0

你說得對。可能這就是原因。其實我打電話給家長的iframe功能,它的工作原理。這對我來說不是最好的解決方案,但很好理解,爲什麼self.f()在Opera中不起作用。感謝名單! – Adrian 2010-05-10 06:56:10