Node.js – 如何编辑jsdom窗口中的元素并将窗口另存为新的HTML文件?
我想加载一个HTML文件(使用fs.read),使用jsdom加载DOM,然后更改正文节点的文本(通过jQuery)。 然后我想将编辑的DOM窗口保存为HTML文件。 有没有办法做到这一点? 我使用的代码如下:
fs.readFile(file, 'utf8', function(error, data) { jsdom.env(data, [], function (errors, window) { var $ = require('jquery')(window); $(document.body.getElementsByTagName("*")).each(function () { var content = $(this).text(); var word = "\\b"+wordSuggestions.word+"\\b"; var re = new RegExp(word, "g"); content = content.replace(re, wordSuggestions.suggestion); $(this).text(content); }); fs.writeFile(file, data, function (error){ // saving the new HTML file? What should I put instead of data? Window? }); }); });
这是一个如何做的例子。 我已经基于你的代码,但简化了一下,所以我有代码执行和说明如何做到这一点。 以下代码读取foo.html
并添加modified!
的文本modified!
到所有的p
元素,然后写出out.html
。 你缺less的主要是window.document.documentElement.outerHTML
。
var jsdom = require("jsdom"); var fs = require("fs"); fs.readFile('foo.html', 'utf8', function(error, data) { jsdom.env(data, [], function (errors, window) { var $ = require('jquery')(window); $("p").each(function () { var content = $(this).text(); $(this).text(content + " modified!"); }); fs.writeFile('out.html', window.document.documentElement.outerHTML, function (error){ if (error) throw error; }); }); });
- NODE.JS如何使用node.js显示我的CSS文件夹内的名为CSS的文件夹,其中我的server.js和index.html位于文件夹之外
- 如何使用Windows 8编译Twitter Bootstrap 3.0
- 节点js的 – 如何安全地传递令牌从http获取请求到html页面?
- 使用Node.js和XPath对页面进行性能分析
- 如何将JavaScript对象导出为JavaScript?
- 找不到公共目录(404)ExpressJS和Jade
- 错误:ENOENT:没有这样的文件或目录,错误(本地)stat'/public/main.html'
- 如何使用Node.js从json文件中读取数据并将读取的数据显示到html中?
- 电子应用程序与多个选项卡式浏览器窗口连接到https网站