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>