无法访问 IE 中的 iframe 内容
Can't access iframe content in IE
我正在构建一个CMS应用程序,我现在正在为IE调试。但事情的发生我无法理解。
首先,我有一个包含页面内容的div。我提取div的内容,并使用javascript创建一个iFrame并将其附加到div中。这是为了制作所见即所得的编辑器。然后,当我想将内容添加到iFrame时,问题就开始了。由于某种原因,IE 无法访问 iFrame 的主体。我可以提醒iFrame的文档,它给了我[对象文档]或[对象HTMLDocument],但是当我提醒正文时,我得到空。
我使用此函数将文档作为javascript对象的一部分获取:
iframedoc: function(aID) {
if (document.getElementById(aID).contentDocument){
return document.getElementById(aID).contentDocument;
} else {
var iFrame = document.getElementById(aID);
return iFrame.contentWindow.document;
}
},
这是我第一次称之为的地方:
tas[i].innerHTML = "";
tas[i].appendChild(ta_edit_functions);
tas[i].appendChild(ta_edit);
tas[i].appendChild(ta_result);
alert(ta.iframedoc(ta_edit_id));
ta.iframedoc(ta_edit_id).body.innerHTML = ta_edit_content;
ta.iframedoc(ta_edit_id).designMode = 'on';
在这里,我清空了div,附加一个包含所见即所得函数、iFrame 和文本区域的div,以便最终提交表单。
我正在IE 8和9中进行测试。最奇怪的是,当我在IE 8中首次调用iframedoc之前发出警报时,我突然得到了身体。
如果有人至少能指出我正确的方向,我将不胜感激。我真的不知道发生了什么。
我正在IE 8和9中进行测试。最奇怪的是,当我在IE 8中首次调用iframedoc之前发出警报时,我突然得到了身体。
这听起来好像你对浏览器来说太快了——当你尝试弄乱它时,iframe 可能还没有完全加载,所以添加警报会给它额外的时间。尝试使用 iframe 元素上的 onload
事件延迟某些代码。
最终,我的解决方案是使用间隔函数检查iFrame的主体是否可用。
但是随着这些错误的消失,我发现在IE8中打开iFrame的设计模式会删除它的所有内容。所以我最终只使用了一个内容可编辑的div。
相关文章:
- 获取iframe内容的宽度-高度
- 使用Javascript(或jQuery)加载iframe内容
- 动态(重新)创建iframe内容不会重置Chrome中的JS对象
- 将 iframe 内容传输到新的空 iframe
- 如何运行在加载时操作 iframe 内容的代码
- 如何根据 iframe 的大小调整 iframe 内容的大小
- 打印iframe内容
- Internet Explorer:可以't访问IFrame内容,除非状态代码为200
- 如何创建iframe内容的书签
- 从父窗口上的iFrame内容中关闭iFrame
- iFrame内容在盲效后丢失
- 如何在angular js中使用滚动条打印iframe内容
- iframe内容可编辑,位于jqueryUI可排序列表项中
- 当Iframe内容从按钮更改时,动态更改标头名称
- iframe内容加载后触发js函数
- 如何按时间间隔重新加载Iframe内容,使其不会闪烁
- Javascript 打印多个网页 iFrame 内容(全部打印按钮)
- 无法获取 iframe 内容
- 根据链接显示 iframe 内容
- 单击按钮时重新加载 iframe 内容(本地 HTML)