编辑以jQuery样式操作DOM的HTML文件

时间:2012-12-27 18:58:11

标签: c# java javascript jquery html

我有一批HTML文件,需要使用jQuery轻松执行某些版本(主要是选择一些节点并更改其属性)。

我实现这一目标的方法是在谷歌浏览器中逐一打开它们,在控制台中使用jQuery代码,然后将生成的DOM复制回我的HTML编辑器。

由于我目前正在做的事情需要花费很多时间,而且由于每个文件都需要相同的版本(即,相同的jQuery / JS代码适用于每个HTML文件),我正在考虑写一个脚本/程序来做这件事。

无论如何,我并不完全清楚我应该采取哪些方法(如果有的话)来完成这项任务。

  1. 使用一些文件系统/文件操作库(哪一个?)

  2. 使用jQuery编写JavaScript 脚本
  3. 使用一些基于jQuery的库(如CsQuery)编写Java或C#程序

  4. 为我的一些编辑器找到一个插件(Aptana,Notepad ++,Eclipse等)或者一个完全不同的编辑器,它支持类似jQuery的命令(就像记事本++ regex替换支持一样) )。对于批量较大的情况,这会很慢,但至少可以让我避免向Chrome提供令人讨厌的复制/粘贴。

  5. 其中一个接近正确的方式来完成我需要的东西吗? (有没有正确的方法这样做?)哪个应该更直接?

    我认为#2对我来说会更容易,因为我在Java和C#方面比在JavaScript中有更多的经验,但我认为也许这个想法会使用大锤来解决问题。

2 个答案:

答案 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#并认为编写类库对自动化来说是最少的开销。以下是一些可能的解决方案:

  1. 脚本库(例如,C#.NET) - 如果要使用DOM操作,可以使用类似于您提到的库或ScriptSharp之类的库。如果HTML具有适当的结束标记,您还可以使用LINQ轻松导航HTML(或类似CodePlex上的HTML Agility Pack)。我甚至建议在C#中使用带有HTML文件模板的Mustache。

  2. JavaScript库 - 如果您想使用纯JavaScript,可以使用Node.js.您可以使用文件操作库。

  3. 无头浏览器 - 未考虑过能够自动保存生成的HTML,但您可以使用jsTestDriverPhantom.js

    之类的内容
  4. 您也可以使用编辑器中的插件,但我会坚持使用Java,C#,python等库,您可以从现有应用程序调用或作为作业/服务安排。