当前位置:  开发笔记 > 编程语言 > 正文

如何使用Node.js访问DOM?

如何解决《如何使用Node.js访问DOM?》经验,为你挑选了1个好方法。

我有一个editor.html包含generatePNG功能:

   
 
 
     
    Diagram 

     
//    
 

     


 

 
    

我想访问DOM并image.src使用Node.js. 我发现我可以使用cheerio或jsdom.

我从这开始:

var cheerio = require('cheerio'),
    $ = cheerio.load('editor.html');

但我找不到如何访问和获取image.src.



1> Rogier Spiek..:

问题是,通过将html文件加载到cheerio(或任何其他节点模块)中,将不会像浏览器那样处理HTML.资产(例如样式表,图像和javascripts)将不会像在浏览器中那样加载和/或处理.

虽然node.js和现代webbrowsers都有相同(或类似)的javascript引擎,但是浏览器添加了很多额外的东西,比如window,DOM(document)等.Node.js没有这些概念,所以没有window.FileReader也不是document.createElement.

如果图像完全是在没有用户交互的情况下创建的(你的代码示例'神奇地'接收sBlob到类似于字符串的参数data:;,),你可以在服务器上使用所谓的无头浏览器,PhantomJS最近似乎最受欢迎.然后,如果创建时不需要用户交互sBlob,那么最好使用纯node.js解决方案,例如如何在Node中解析数据URL?.

如果创建sBlob它需要某种用户交互,并且您需要将它存储在服务器上,您可以使用几乎相同的解决方案,只需sBlob使用Ajax或websocket将服务器发送到服务器,处理sBlob成一个图像和(可选)返回URL查找图像的位置.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有