https://blog.csdn.net/shuaizai88/article/details/73743626
今天我们使用jxbrowser 实现js直接调用java代码。
调用javaTest类的 alert方法。
主要就是给浏览器对象添加一个监听,然后在页面渲染完成之后,获取到js的window对象,给window对象添加一个 属性。
final Browser browser = new Browser(); BrowserView browserView = new BrowserView(browser); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(browserView, BorderLayout.CENTER); frame.setSize(700, 500); frame.setLocationRelativeTo(null); frame.setVisible(true); browser.addLoadListener(new LoadAdapter() { @Override public void onFinishLoadingFrame(FinishLoadingEvent event) { if (event.isMainFrame()) { JSValue window = browser.executeJavaScriptAndReturnValue("window"); // 给jswindows对象添加一个扩展的属性 JavaTest javaObject = new JavaTest(); window.asObject().setProperty("javaTest", javaObject); } } }); browser.loadURL("E:/workspace48/browser/test.html");
<script> function exeJava(){ try { javaTest.alert('111'); } catch(e) { alert(e); } } </script> <body onclick="exeJava()"> 111111 </body>