2010-12-17 108 views
3

我有一個關於JavaScript和可以運行代碼的方法的問題。正如我們所知,標籤中嵌入了一些JavaScript代碼,它本身在瀏覽器窗口中運行 - 這是很常見的,這就是網頁當前的工作方式。在頁面上運行JavaScript代碼而不顯示瀏覽器窗口

如果我們希望與我們正在瀏覽的網頁開箱即用,我們必須使用諸如GreaseMonkey之類的工具,並編寫我們的UserScript,以便我們將頁面行爲更改爲所需的行爲。這仍然需要我們打開瀏覽器窗口並訪問我們的目標。

問題是:我們能否以某種方式在某個頁面上運行JavaScript代碼而無需打開瀏覽器窗口?我的意思是,在一個理想的解決方案將有一個命令行工具,它會允許我們致電:

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

在哪個腳本,例如,我們可以運行一些AJAX代碼來獲取數據來自查詢到來,將它傳遞給其他一些將其保存到數據庫的PHP腳本。

我認爲這個問題簡化爲:有沒有像JavaScript引擎的「命令行瀏覽器」的工具?我知道,這聽起來很奇怪,但我很好奇,因爲我腦海中有這個想法。

回答

3

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

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

關於這些的事情是,他們不包括這樣的「瀏覽器」......他們只是可以執行JavaScript的JavaScript引擎,但不能提供解析/操作HTML的能力,盒子。但是,這些引擎上建立了JavaScript庫,可以幫助您簡化大部分工作。

+0

Can Node.JS可以加載頁面並與其代碼交互嗎?你能指出我關於那個話題的資源嗎? – 2010-12-17 15:06:53

+0

@Tomasz Kowalczyk - 我認爲你在尋求HTML抓取?是的,NodeJS很好。使用'request'來拉動網頁,'jsdom'和'jQuery'端口,你可以簡單地使用jQuery在任何頁面上查找文本/元素。看看這個:http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs – 2010-12-17 15:08:52

+0

NodeJS和JSDOM。 – adamse 2010-12-17 15:09:27

0

有幻影:http://phantomjs.org這是一個基於webkit的無頭瀏覽器,完全支持javascript。它公開了一個界面,可以導航到頁面,與其交互並在該頁面的上下文中運行所需的任何腳本。

相關問題