我的 Javascript 代码如下...
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 对象
最佳答案
如果您想在页面和 iframe 之间交换数据,可以使用
window.postMessage
Mozilla 文档对此非常好:https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage
也许这会对你有所帮助。
关于JavaScript 兼容性问题(代码在 FF 中有效,但在 Opera 和 Chrome 中无效),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21950656/