在页面上运行JavaScript代码而不显示浏览器窗口

时间:2010-12-17 15:02:29

标签: javascript browser command-line command-line-interface

我有一个关于JavaScript和方法的问题,通过它可以运行代码。我们知道,标签中嵌入了一些JavaScript代码,它在浏览器窗口中本地运行 - 这很常见,这就是网页当前的工作方式。

如果我们想要与我们正在浏览的网页开箱即用的交互,我们必须使用GreaseMonkey等工具并编写我们的UserScripts,以便我们将页面行为更改为我们想要的页面行为。这仍然需要我们打开浏览器窗口并访问我们的目标。

问题是:我们能否以某种方式在某个页面上运行JavaScript代码而不打开浏览器窗口?我的意思是,在一个理想的解决方案中,会有一个允许我们调用的命令行工具:

./clibrowser http://google.com userscript.js

例如,在哪个脚本中,我们可以运行一些AJAX代码来获取来自查询的数据,并将其传递给将其保存到数据库的其他PHP脚本。

我认为这个问题简化为:有没有像JavaScript引擎这样的“命令行浏览器”工具?我知道,这可能听起来很奇怪,但我很好奇只是因为我有这个想法。

2 个答案:

答案 0 :(得分:3)

是的,有。 NodeJS可以在Chrome的V8 javascript引擎上运行:http://nodejs.org/

还有Rhino,它运行在Java上:http://www.mozilla.org/rhino/

关于这些的问题是它们不包含“浏览器”......它们只是可以执行javascript的javascript引擎,但是不提供解析/操作HTML的能力, out的方框。但是,在这些引擎上构建了javascript库,可以简化大部分工作。

答案 1 :(得分:0)

有phantomjs:http://phantomjs.org这是一个基于webkit的无头浏览器,完全支持javascript。它公开了一个界面,可以让您导航到一个页面,与它交互并在该页面的上下文中运行您想要的任何脚本。