我是一名Web开发人员,因此,任何Javascript文档的第一个调用端口通常是MDN。例如,现在我想使用DOMParser,它在Chrome中具有支持。
但是,当我通过V8(节点或rubyracer)运行JavaScript时,找不到DOMParser。
~/$ node
Welcome to Node.js v12.4.0.
Type ".help" for more information.
> DOMParser;
Thrown:
ReferenceError: DOMParser is not defined
>
是否存在仅在浏览器中可用的JavaScript子集?如何确定V8支持哪些功能?
答案 0 :(得分:3)
大多数Web开发人员认为,Web开发中使用的javascript中任何可访问的对象,原型和方法都是纯javascript功能,而这种想法实际上并不正确。 Web开发中的某些对象(例如XMLHttpRequest,DOMParser等)是文档对象模型(DOM)的一部分,除非在浏览器平台上,否则我们无法访问它们。
如果您使用的是Nodejs,并且想解析html文本,那么我认为Jsdom库可以满足您的要求,如下所示:
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
console.log(dom.window.document.querySelector("p").textContent);
希望这对您有帮助
答案 1 :(得分:3)
官方的确切答案是:当它是ECMAScript specification的一部分时,它将由ECMAScript引擎(V8,SpiderMonkey,JSC)实现/支持。您在MDN中发现的所有其他内容(例如,与DOM和网络相关的任何内容)都是特定于浏览器环境的,并由相应的浏览器实现。
为了便于阅读,MDN的JavaScript reference似乎也保持了这种分隔。