2014-02-22 36 views
1

我有一個代碼,在Javascript如下...的Javascript兼容性問題(代碼在FF但不是在Opera和Chrome)

var btnOK = document.getElementById('btnOK'); 
btnOK.style.visibility = "visible"; 
var iframeControlObj = document.getElementById('iframe'); 
this.style.visibility = "hidden"; 
var file_xml = iframeControlObj.contentDocument.getElementById('hiddenxml'); 
file_xml.value = xml_value; 
iframeControlObj.contentWindow.location.reload(); 

說明

我有一個iframe,其中有一個控制「hiddenxml」。我想將數據從當前網頁發送到iframe。所以,我正在初始化「hiddenxml」的值並重新加載iframe。

問題

在Firefox中,我能夠通過「hiddenxml」獲得「xml_value」,但在Chrome和Opera,我無法得到這個信息。

請讓我知道爲什麼會發生這種情況。如果這是一種垃圾方法,請隨時提供更好的方法並改進它。非常感謝..

PS:xml_value可能相當大,大小約爲3-4 MB。 xml_value是一個字符串,而不是一個DOM對象

+0

當您重新加載iframe時,它會刷新服務器上的所有內容,並且您對DOM所做的任何修改都將丟失。 – Barmar

+0

什麼是它的解決方案?我如何將當前頁面的信息發送到iframe? – StackAddict

+0

按照其他順序進行:重新加載幀併發送數據。 – Barmar

回答

0

如果你想你的頁面和一個iframe之間交換數據,可以使用

window.postMessage 

關於這個Mozilla的文檔是相當不錯:https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

也許這會幫助你。

+0

window.postMessage通過URL發送值。 xml_value非常大,因爲我已經提到過,所以我不能通過URL發送這個巨大的值。儘管感謝您的回覆。 – StackAddict

相關問題