从脚本/命令行执行浏览器页面/javascript

Execute browser page/javascript from a script/command-line

本文关键字:浏览器 javascript 执行 脚本 命令行      更新时间:2023-09-26
希望这不是一个愚蠢的问题。
我最近有一个想法,我很好奇。
我是Node.js(不是真的相关在这里我认为)和V8引擎的粉丝,但我想知道是否有可能运行浏览器(让它执行JS),但内部。

我的意思是创建一个程序(可能使用V8引擎),它可以打开一个页面(就像在浏览器中一样)并执行它的javascript。

例如,假设我有以下文件托管在www.mysite.co.uk/home.php

<!DOCTYPE html>
<html>
<head>
<script>
function myFunction()
{
//javascript AJAX call to www.mysite.co.uk/ping.php
}
myFunction();
</script>
</head>
<body>
</body>
</html>

ping.php看起来像:

<?php
//connect mysql, database ping and table ping
//it is a single column table with integer value starting on 0
//increment by 1 and update the table

假设我想通过在我的命令行/linux盒子上使用某种脚本来执行Javascript(基本上不使用浏览器)。

比如:

./mybrowser http://www.mysite.co.uk/home.php

甚至:

./mybrowser home.php

我觉得这应该是可能的,因为V8(或不同的JS引擎)应该在技术上能够执行Javascript,但我还不清楚它如何在浏览器上下文中这样做(或者即使它可能)。

任何想法?

你可以使用任何js引擎来运行js脚本,只要它们不依赖于DOM。

你可以从下面开始:

  • 运行V8 Javascript Engine单机

编辑:正如我所理解的,你想要一个无头浏览器,这里有一些:

  • HTMLUnit(用于单元测试)
  • PhantomJS
  • Zombie.js

通过使用Rhino for Java或Windows Script Host在命令行上运行JavaScript。

http://www.mozilla.org/rhino/
http://msdn.microsoft.com/en-us/library/9bbdkx3k%28VS.85%29.aspx