以下(在我看来)可以在所有其他浏览器中正常运行:

document.documentElement.innerHTML = "<head></head><body>Testing</body>";

但是IE中出现了扼杀现象(我测试了IE9),但出现了控制台错误:
SCRIPT600: Invalid target element for this operation.

...引用上面代码行的第一个字符。

为什么不能在IE中使用此功能,但在所有其他浏览器中都可以使用?我在某处读到innerHTML在替换'TBODY'元素时遇到问题,但是在删除所有TBODY子级并发生相同错误后,我测试了这一行代码。

我知道这听起来像是坏消息代码,但这是我被迫使用的非常有限且过于简单的CMS网站留下的唯一选择。我只感谢CMS允许执行脚本。

本质上,我需要能够完全理解HTML内容并使用自己的HTML内容。同样,这在其他浏览器上也可以正常工作。

其他说明:
  • CMS使用的是prototype.js库(在运行此代码之前已经加载)
  • Doctype是:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • CMS脚本使用prototype.js在页面加载时动态添加两个内容完整的div
  • 最佳答案

    document.open("text/html", "replace");
    document.write("<head></head><body>Testing</body>");
    document.close();
    

    关于javascript - 在Internet Explorer中替换document.documentElement.innerHTML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8448014/

    10-09 17:34
    查看更多