我正在开发一个项目,我需要使用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!!" );
答案 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;
}