2011-02-15 59 views
3

我有下面的代碼在Firefox罰款...鉻:獲得的iFrame和插入身體

if (!iFrame) iFrame = outerDoc.getElementById('_dialog_iframe'); 
var iFrameDoc = iFrame.contentWindow.document; // get iframe doc 

和Chrome版本...

if (!iFrame) iFrame = outerDoc.getElementById('_dialog_iframe'); 
var iFrameDoc = iFrame.document; // get iframe doc 

我當我在Firefox中運行FireFox代碼時,測試代碼得到iFrameDoc.body,它工作正常。但是,Chrome代碼返回undefined。爲什麼?我如何解決這個問題,以便它在Chrome中正常工作?

回答

10

如果IFRAME元素具有在Chrome瀏覽器document屬性然後我很驚訝,這是不規範的,並在其他瀏覽器不支持。基於標準的財產是contentDocument,並支持其他瀏覽器,您可以使用contentWindow.document。以下將適用於所有主流瀏覽器:

var iFrameDoc = iFrame.contentDocument || iFrame.contentWindow.document; 
+0

我有類似的問題,您的代碼工作。奇怪的是,除去iframe中的參數「sandbox ='allow-same-origin allow-scripts'」,它無論如何都能正常工作。 – Omiod 2012-04-05 13:57:22