javascript - ie9 标准模式、iframe 和 dom manip

标签 javascript iframe jquery-ui-dialog internet-explorer-9

IE9(标准模式)根本不允许您在 DOM 中操作 iframe。如果您使用 jQueryUI 对话框或 jQuery 的 .wrap() 函数来包装恰好包含 iframe 的内容,IE9 将会崩溃。事实上,您甚至不需要 jQuery,普通的旧 JS 就可以正常工作(见下文)。

我想知道自从 Microsoft says they do this on purpose to address a memory leak 以来人们对此有何看法.

我们不确定该怎么做。将我们所有使用 iframe 的文档置于 Quirks 模式似乎是错误的。但我们不确定替代方案是什么。有任何想法吗? TIA。

Javascript 示例代码:

       <p id="after"></p>

..将 iframe 放在这里...

        <script type="text/javascript">
            //uncomment code below in IE9 standards mode to see error
            //document.getElementById("after").appendChild(document.getElementById("iframe"));
        </script>

最佳答案

遇到这个问题后,我屈服于将浏览器置于怪癖模式:

        Response.AddHeader("X-UA-Compatible", "IE=8");

绝对欢迎任何其他解决方案,因为像 tengoal 我怀疑这不是最佳选择,即使它有效

关于javascript - ie9 标准模式、iframe 和 dom manip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5559221/

相关文章:

javascript - 如何使用 JavaScript 检索并显示 Facebook 上的照片?

javascript - 使用each()将cookie与元素ID进行匹配

javascript - 计数 child + 更改 CSS

javascript - 将匹配字符串中最后一次出现的点的正则表达式

javascript - 如何确定 jquery 对话框中当前可见的垂直位置在哪里?

javascript - 如何在 WordPress 中单击按钮时显示 iframe 弹出窗口?

python - 如何使用 Selenium 从非选择下拉菜单中单击一个项目

javascript - 在 react 中将事件处理程序添加到 iframe 中的特定类名

javascript - Jquery 模式无法正常工作

jQuery 对话框调整大小事件