2014-02-13 35 views
0

是否可以使用java代碼來調用網站源代碼中的javascript函數?從java代碼調用網站的JavaScript函數?

想象一下,下面的代碼網站:

<script> 
function sayHello(name) { 
    return "Hello " + name; 
} 
</script> 

我可以打「的sayHello」無法連接到該網頁客戶端? (我知道我可以從java調用javascript,如果我有本地保存的* .js文件,但我不想這樣做,因爲JS可能會改變我想調用該函數的網站)。

ScriptEngineManager factory = new ScriptEngineManager(); 
ScriptEngine engine = factory.getEngineByName("JavaScript"); 
engine.eval(..); //is it possible to invoke the JS function on the website? 
+0

你究竟想達到什麼目的? –

+0

我想寫一個客戶端在一個網站上,使用大量的Ajax計算與服務器進行身份驗證。所以我不知何故必須調用這些ajax函數(在登錄網站中作爲源代碼實現)。 – membersound

回答

1

我想你必須首先解析腳本標記的內容(手動獲取HTML頁面然後使用例如RegExp查找所有腳本元素的內容),然後將其作爲字符串傳遞給eval()。不是很漂亮的事情是<script>中的JS代碼可能會使用其他一些JS代碼(外部的,在此元素之前加載等),因此您可能還需要檢查這些「依賴關係」。

0

你只能通過Ajax call或類似iframe一些舊時尚的方式刷新

+0

它應該是一個評論。 – Chinna

0

如果我理解正確你想調用現有的JavaScript的網站,以及添加一些邏輯,自己做。

你不必在這裏使用Java的一切,你可以簡單地通過

  1. bookmarklets

  2. 瀏覽器extenstions注入你的JavaScript進入該頁面,我建議Kango

  3. 或簡單地將代碼粘貼到瀏覽器控制檯中