以下(在我看来)可以在所有其他浏览器中正常运行:
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内容。同样,这在其他浏览器上也可以正常工作。
其他说明:
prototype.js
库(在运行此代码之前已经加载)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
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/