9

我正在编写一个服务器应用程序,它能够在将 DOM 提供给客户端之前对其进行操作。

我使用 C++ 和 Google 的 v8 作为 javascript 引擎,但我在 v8 中看不到任何 DOM API。

是否有在 HTML 上进行 DOM 操作的开源实现?
如果不是,您将如何实施?

4

5 回答 5

3

DOM 被创建并链接到 Chrome 中的 V8 引擎。V8 源代码对浏览器 DOM 一无所知。让这个为你工作的最快方法是尝试提取将 HTML 加载到结构中的 Chrome(实际上是 Chromium)的部分,以及将 DOM 和 DOM 方法链接到 V8 的部分。它可能没有你想象的那么糟糕。如果有的话,据我查看 V8 源代码可以看出,Google 生成了非常干净的 C++。它可能没有你想象的那么糟糕。

于 2009-08-23T06:43:00.743 回答
2

你检查过CplusplusDOM吗?(在您提出问题后创建)

C++ DOM API 是一个库,用于在 NPAPI/Pepper 上使用 C++ 编写 Web 应用程序,使用 Web IDL C++ 绑定来访问 Web 浏览器内的 DOM 对象。

于 2010-10-10T12:00:53.097 回答
1

正如您已经(据我所知)在 C++ 中拥有自己的 dom 实现并且只需要 JS dom 绑定,我相信在将低级 JS 函数映射到您已经拥有的接口的 JS 中实现它的大部分内容会更容易

于 2011-06-11T13:14:13.710 回答
0

Safari/Chrome 使用 Webkit 渲染引擎,它结合了 CSS 渲染和 DOM,我会说它是除了 Opera 之外最好的渲染引擎之一 - 我认为它可能有用:

http://webkit.org/

于 2009-07-26T09:13:53.313 回答
0

截至 2018 年,Cloudflare Workers在 V8 引擎上运行,一些开发人员一直在研究如何访问 DOM 解析和操作。他们发现了dom-parsercheerio,所以它们可能会提供你需要的东西。Cheerio 提供了一种有用的类似 jQuery 的语法。它们是 NodeJS 模块,但似乎它们可以在 V8 中运行。

请参阅:https ://simon-thompson.me/simple-dom-manipulation-via-jquery-in-cloudflare-workers/

于 2018-08-24T01:17:12.107 回答