【发布时间】:2011-02-06 22:23:08
【问题描述】:
像这样使用 javascript 修改 dom 树的“主体”的方法是什么:
Original htm: <html> <head></head> <body> blah blah blah </body> </html>
Modified html: <html> <head> </head> <abc> <body> blah blah blad </body> </abc> </html>
也就是说,我希望将整个 body 节点放在另一个节点中。
我正在尝试的代码是:
// 创建一个 iframe
var orig_iframe = document.createElement('iframe');
// 在 iframe 中复制 body 的内容(希望如此!)
orig_iframe.contentDocument.innerHTML=document.body.innerHTML;
// 设置文档正文为空
document.body.innerHTML = '';
// 添加 iframe 到 body
document.body.appendChild(orig_iframe);
这不起作用。显然我错过了什么!
谢谢!
【问题讨论】:
-
会发生什么?您收到任何错误消息吗?
-
我不会尝试这个。您正在尝试生成不符合 HTML 规范的 DOM。浏览器执行某些级别的错误恢复,有时会直接拒绝试图违反规范的更改。
-
你想在 元素中包含
吗? -
@David:对不起,我有点初学者,不明白你的意思。 @杰拉德:是的。基本上,我想生成
-
@David:顺便说一句,abc 只是举例。我将使用正确的 html 标签(在我的例子中,iframe)...如果那是你提到的问题。
标签: javascript dom tree innerhtml appendchild