从字符串创建 DOM 文档,不使用 JQuery

新手上路,请多包涵

我们正在寻找从字符串在 javascript 中创建 DOM 文档 但不使用 Jquery 的方法。有办法吗? [我会这么认为,因为 Jquery 可以做到!]

对于那些好奇的人,我们不能使用 Jquery,因为我们是在 Chrome 应用程序的内容脚本的上下文中这样做的,使用 Jquery 只会使我们的内容脚本太重。

原文由 Julien Genestoux 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 264
2 个回答

如果您仍在寻找答案,并且对于遇到它的任何其他人,我只是一直在尝试自己做同样的事情。看来您想查看 javascript 的 DOMImplementation:

http://reference.sitepoint.com/javascript/DOMImplementation

这里也很少提到兼容性,但它得到了很好的支持。

本质上,要创建一个新文档来操作,您需要创建一个新的 Doctype 对象(如果您要输出一些基于标准的内容),然后使用新创建的 Doctype 变量创建新文档。

有多个选项可以放入 doctype 和文档中,但如果您正在创建 HTML5 文档,您似乎希望将其中的大部分保留为空白字符串。

示例(新的 HTML5 DOM 文档):

 var doctype = document.implementation.createDocumentType( 'html', '', '');

var dom = document.implementation.createDocument('', 'html', doctype);

新文档现在看起来像这样:

 <!DOCTYPE html>
<html>
</html>

示例(新的 XHTML DOM 文档):

 var doctype = document.implementation.createDocumentType(
    'html',
    '-//W3C//DTD XHTML 1.0 Strict//EN',
    'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'
);

var dom = document.implementation.createDocument(
    'http://www.w3.org/1999/xhtml',
    'html',
    doctype
);

因此,由您来填充其余部分。你可以像改变一样简单地做到这一点

dom.documentElement.innerHTML = '<head></head><body></body>';

或者使用更严格的方法:

 var head = dom.createElement( 'head' );
var body = dom.createElement( 'body' );
dom.documentElement.appendChild(head);
dom.documentElement.appendChild(body);

全都是你的。

原文由 woosteln 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题