我有一批HTML文件,需要使用jQuery轻松执行某些版本(主要是选择一些节点并更改其属性)。
我实现这一目标的方法是在谷歌浏览器中逐一打开它们,在控制台中使用jQuery代码,然后将生成的DOM复制回我的HTML编辑器。
由于我目前正在做的事情需要花费很多时间,而且由于每个文件都需要相同的版本(即,相同的jQuery / JS代码适用于每个HTML文件),我正在考虑写一个脚本/程序来做这件事。
无论如何,我并不完全清楚我应该采取哪些方法(如果有的话)来完成这项任务。
使用一些文件系统/文件操作库(哪一个?)
使用一些基于jQuery的库(如CsQuery)编写Java或C#程序
为我的一些编辑器找到一个插件(Aptana,Notepad ++,Eclipse等)或者一个完全不同的编辑器,它支持类似jQuery的命令(就像记事本++ regex替换支持一样) )。对于批量较大的情况,这会很慢,但至少可以让我避免向Chrome提供令人讨厌的复制/粘贴。
其中一个接近正确的方式来完成我需要的东西吗? (有没有正确的方法这样做?)哪个应该更直接?
我认为#2对我来说会更容易,因为我在Java和C#方面比在JavaScript中有更多的经验,但我认为也许这个想法会使用大锤来解决问题。
答案 0 :(得分:2)
您应该考虑使用PhantomJs。它是一个无头WebKit,可以从te命令行执行。它接受javascript or coffeescript file作为参数,可用于例如用网页做点什么。这是一个例子:
var page = require('webpage').create();
page.open('http://m.bing.com', function(status) {
var title = page.evaluate(function(s) {
return document.querySelector(s).innerText;
}, 'title');
console.log(title);
phantom.exit();
});
答案 1 :(得分:1)
我不确定正确的方法,但听起来您熟悉C#并认为编写类库对自动化来说是最少的开销。以下是一些可能的解决方案:
脚本库(例如,C#.NET) - 如果要使用DOM操作,可以使用类似于您提到的库或ScriptSharp之类的库。如果HTML具有适当的结束标记,您还可以使用LINQ轻松导航HTML(或类似CodePlex上的HTML Agility Pack)。我甚至建议在C#中使用带有HTML文件模板的Mustache。
JavaScript库 - 如果您想使用纯JavaScript,可以使用Node.js.您可以使用文件操作库。
无头浏览器 - 未考虑过能够自动保存生成的HTML,但您可以使用jsTestDriver或Phantom.js
之类的内容您也可以使用编辑器中的插件,但我会坚持使用Java,C#,python等库,您可以从现有应用程序调用或作为作业/服务安排。