我被一个相当棘手的问题困扰了几天。我在node.js中的变量中有一个自动生成的HTML页面。我需要找到一些HTML元素的高度,并进行HTML操作(如标记创建、删除、附加、css属性设置等)。
显然,我需要首先为我的HTML页面创建一个类似DOM的结构,然后继续。
对于HTML操作,我有许多选项,如cheerio、node.io、jsdom等,但这些选项都不能让我在节点上找到元素的高度。
因此,在浪费了相当多的时间之后,我决定寻找更重的解决方案,比如实现无头浏览器(phantomjs等)。在节点上通过普通的javascript驱动元素offsetHeight。
有人能告诉我这样能不能达到我的目标吗?什么样的无头浏览器最适合这项任务?
如果我走错了方向,还有人能给我其他的解决办法吗?
在这一点上,我准备尝试任何事情。
提前处理!!
注意:在客户端使用javascript在我的特殊情况下有很多问题,因为生成的HTML页面的内容应该被客户端用来粘贴到他的网站中。留下一个正在运行的javascript来重新构造HTML将使他在最后变得很困难。
发布于 2013-11-21 15:58:10
节点的服务器端HTML库(如cheerio和jsdom)严格来说是DOM仿真库。它们不试图实际呈现文档,这是计算元素大小和位置所必需的。
如果确实需要计算服务器上元素的大小,则需要像PhantomJS这样的无头浏览器。它是一个带有WebKit API的完整JavaScript呈现程序。它完全独立于节点,所以您需要使用幻影API编写实用程序脚本,或者使用npm模块,它允许您从节点控制幻象。。
在阅读了问题下面的注释后,很明显,您不应该计算服务器上的高度。客户端代码是正确的地方来做它。
https://stackoverflow.com/questions/20122279
复制相似问题