2016-12-03 28 views
-1

我正在開發一個項目,其中我需要使用JAVA或JSP的所有選項卡的瀏覽器URL。我已經嘗試將JavaScript代碼執行到Java並獲得HELLO WORLD輸出,但我需要的是當前打開的所有瀏覽器的URL選項卡。如何獲得所有瀏覽器使用java的當前標籤URL?

我試過到目前爲止:

String script = "function hello(name) { print('Hello, ' + name); }"; 
    ScriptEngineManager factory = new ScriptEngineManager(); 
    ScriptEngine engine = factory.getEngineByName("JavaScript"); 
    engine.eval(script); 
    Invocable inv = (Invocable) engine; 
    inv.invokeFunction("hello", "Scripting!!"); 
+0

向我們展示了什麼你試過 –

+0

String script =「function hello(name){print('Hello,'+ name);}」; ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName(「JavaScript」);引擎.val(腳本); // javax.script.Invocable是一個可選接口。 //檢查您的腳本引擎是否實現! //注意JavaScript引擎實現了Invocable接口。 Invocable inv =(Invocable)引擎; //調用名爲 「你好」 inv.invokeFunction全局函數( 「你好」, 「腳本!!」); –

+0

請與代碼編輯的問題,所以我們實際上可以讀取它 –

回答

0

沒有任何標準的Java API來做到這一點或任何標準的API通過將服務器的目的,對於ScriptEngineManager使用的是沒有幫助的Web瀏覽器提供你得到的網址。

有一個選項,雖然你可以在哪裏執行某些操作系統命令和解析輸出,你可能會得到的URL。

下面是一篇文章,可能會幫助您入門:http://www.javaworld.com/article/2077567/core-java/java-tip-66--control-browsers-from-your-java-application.html

0

如果你是使用鉻可以使AWTRobot的使用

代碼:

public String getUrl(){ 
Thread.sleep(3000);// 
Robot r=new Robot(); 
     r.keyPress(KeyEvent.VK_ALT); /* to get focus on taskbar 
    r.keyPress(KeyEvent.VK_D);  */ 
    r.keyRelease(KeyEvent.VK_ALT); 
    r.keyRelease(KeyEvent.VK_D); 
    r.keyPress(KeyEvent.VK_CONTROL); /* to copy it*/ 
    r.keyPress(KeyEvent.VK_C); 
    r.keyRelease(KeyEvent.VK_CONTROL); 
    r.keyRelease(KeyEvent.VK_C); 
     String selectedText =(String)Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor); // it extracts the highlighted text of system clipboard 
     return selectedText; 
} 
相關問題