2011-07-09 23 views
2

例如,如果您在瀏覽器欄javascript:alert('hai');中輸入,則會顯示彈出窗口。在編程語言中可以這樣做嗎?你如何從瀏覽器欄中以編程方式執行JavaScript?

例如在java中,我可以連接到一個網站,並執行它的javascript以某種方式在我的程序中?

例子:

的Javascript在網頁:

function setStatus(a) { 
    if (a == 1) status1 = true; 
    else if (a == 2) status2 = true; 
    else if (a == 3) status3 = true 
} 

Java程序:

URL site = new URL("http://somesite.com/page.html"); 
URLConnection siteConnect = site.openConnection(); 
siteConnect.connect(); 

我將能夠執行setStatus(1)setStatus(2)setStatus(3) java程序裏面?它怎麼能做到?

+0

您需要將瀏覽器嵌入到您的Java程序中(或者只需在外部調用它)。 –

+0

下載的代碼是否需要JavaScript?你能否下載並編譯Java代碼(當然要警惕安全問題)? http://www.javaworld.com/javaworld/jw-06-2006/jw-0612-dynamic.html – sje397

回答

2

您正在尋找包含Javascript引擎和瀏覽器DOM和JS內置函數的環境;因此你最簡單的賭注就是瀏覽器。

您的第一站應該是HTMLUnit,它有Javascript support通過Rhino並提供所有瀏覽器特定的JS對象。這可能是你需要的一切。

如果您想深入瞭解一下,您可以通過針對Webkit進行開發來實現一個完整的瀏覽器引擎。要查看的兩個端口是QtWebkit(如果速度不適合您)或Google的Chromium。注意設置其中的一個將是一次投資。

1

不只是普通的Java。您的瀏覽器可以這樣做,因爲它已安裝了Java運行時,Java在默認情況下沒有。

您可能要考慮的一個選項是Rhino,這是一種Java中的Javascript實現。您可以以這種方式運行大多數標準Javascript,但是與瀏覽器的DOM交互的任何內容(例如window對象)可能無法正常工作。

+0

什麼編程方法可以實現這一點,你知道嗎? – Kyle

+1

正如在編輯中提到的,你最好的選擇可能是犀牛。 –

相關問題