【发布时间】:2012-02-25 11:01:27
【问题描述】:
我正在将 html 作为字符串传递。我的目标是从具有所有适当节点的 html 创建一个新文档,以便我可以在我创建的文档上调用 doc.getElementsByTagName 并使其按预期工作。我的代码示例在这里。
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);
我遇到以下问题:
- 如果脚本标签中的某些内容包含像
- 即使脚本标签内没有使用此类字符,当我运行上述代码时,我会得到输出“[object Element] code =undefined”
所以我的问题是:
A.当我尝试在我将 innerHTML 设置为的任何内容中使用它们时,如何处理诸如
编辑:正如 Ryan P 指出的那样,这段代码实际上在 FF 中有效。因此,如果有人可以帮助我让它在 chrome 中工作,那将不胜感激!
【问题讨论】:
标签: javascript dom innerhtml cdata