asu*_*and 1 javascript dom innerhtml cdata
我正在将 html 作为字符串传递。我的目标是从具有所有适当节点的 html 创建一个新文档,以便我可以在我创建的文档上执行诸如调用 doc.getElementsByTagName 之类的操作,并使其按预期工作。我的代码的一个例子是here。
var doc = window.document.implementation.createDocument
('http://www.w3.org/1999/xhtml', 'html', null);
doc.getElementsByTagName('html')[0].innerHTML =
'<head><script>somejs</script>' +
'<script>var x = 5; var y = 2; var foo = x + y;</script>' +
'</head><body></body>';
var scripts = doc.getElementsByTagName('script');
console.log(scripts[0] + " code = " + scripts[0].innerHTML);
Run Code Online (Sandbox Code Playgroud)
我有以下问题:
所以我的问题是:
A. 我如何处理诸如 < 之类的字符,当我尝试在将 innerHTML 设置为 B 时使用它们时会出现 DOM 异常 11。如何使文档正确解析脚本标签并将它们的代码放入其 innerHTML 属性中以便我以后可以阅读。
编辑:正如 Ryan P 指出的,这段代码实际上适用于 FF。因此,如果有人能帮助我让它在 chrome 中工作,那将不胜感激!
小智 5
摘自https://github.com/rails/turbolinks,为什么不尝试以这种方式创建文档:
doc = document.implementation.createHTMLDocument("");
doc.open("replace");
doc.write(html);
doc.close();
Run Code Online (Sandbox Code Playgroud)
哪里html 应该是你的 html 内容。我还没有测试过,不知道你是否应该先转义字符。
| 归档时间: |
|
| 查看次数: |
5415 次 |
| 最近记录: |