我正在编写一个服务器应用程序,它能够在将DOM提供给客户端之前对其进行操作。
我使用C ++和Google的v8作为javascript引擎但我在v8中没有看到任何DOM API。
是否有针对HTML进行DOM操作的开源实现?
如果不是,你会如何实施?
答案 0 :(得分:2)
创建DOM并将其链接到Chrome中的V8引擎。 V8源代码对浏览器DOM一无所知。让这个适合你的最快方法是尝试提取将HTML加载到结构中的Chrome(Chromium,真正)部分,以及将DOM和DOM方法链接到V8的部分。它可能没有您想象的那么糟糕。如果有的话,谷歌生产相当干净的C ++,据我所知,从查看V8源代码。它可能没有你想象的那么糟糕。
答案 1 :(得分:1)
你签出了CplusplusDOM吗? (在提出问题后创建)
C ++ DOM API是一个库,用于通过NPAPI / Pepper在C ++中编写Web应用程序,使用Web IDL C ++绑定访问Web浏览器中的DOM对象。
答案 2 :(得分:1)
正如你已经拥有的(我理解)你自己的C ++实现dom并且只需要JS dom绑定,我相信在JS映射低级JS函数中实现大部分内容会更容易实现你已经拥有的接口
答案 3 :(得分:0)
Safari / Chrome使用Webkit渲染引擎,它结合了CSS渲染和DOM,我会说它是Opera之外最好的渲染引擎之一 - 我认为它可能有用:
答案 4 :(得分:0)
截至2018年,Cloudflare Workers在V8引擎上运行,一些开发人员一直在研究如何访问DOM解析和操作。他们发现了 dom-parser 和 cheerio ,因此有可能满足您的需求。 Cheerio提供了一个有用的类似jQuery的语法。它们是NodeJS模块,但似乎可以在V8中运行。
请参阅:https://simon-thompson.me/simple-dom-manipulation-via-jquery-in-cloudflare-workers/