2016-12-03 58 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; 
} 
相关问题