如何使用java获取所有浏览器当前标签URL?

时间:2016-12-03 09:35:20

标签: javascript java jsp servlets

我正在开发一个项目,我需要使用JAVA或JSP的所有选项卡的浏览器URL。我已经尝试过javascript代码执行到java并获得了HELLO WORLD输出,但我需要的是当前打开的所有浏览器的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!!" );

2 个答案:

答案 0 :(得分:0)

没有任何标准的JAVA API可以执行此操作,或者Web浏览器提供的任何标准API都可以为您的目的服务,而您正在使用的ScriptEngineManager并不能帮助您获取URL

虽然您可以执行某些操作系统命令并解析输出,但您可以获取URL。

这篇文章可能会帮助您入门:http://www.javaworld.com/article/2077567/core-java/java-tip-66--control-browsers-from-your-java-application.html

答案 1 :(得分:0)

如果你使用chrome ,你可以使用 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;
}
相关问题