當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaFX中WebView的java与JS代码互相调用
生活随笔
收集整理的這篇文章主要介紹了
JavaFX中WebView的java与JS代码互相调用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
java代碼?
package main;import javafx.application.Application; import javafx.beans.value.ObservableValue; import javafx.concurrent.Worker; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.VBox; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; import javafx.stage.Stage; import netscape.javascript.JSObject;import java.io.File; import java.io.IOException;public class Main extends Application {@Overridepublic void start(final Stage stage) throws IOException {final WebView browser = new WebView();webEngine = browser.getEngine();String url = new File("./filePage.html").toURI().toURL().toString();webEngine.load(url);webEngine.getLoadWorker().stateProperty().addListener((ObservableValue<? extends Worker.State> ov, Worker.State oldState,Worker.State newState) -> {if (newState == Worker.State.SUCCEEDED) {JSObject win = (JSObject) webEngine.executeScript("window");win.setMember("apps",apps);//設置變量}});Button button1 = new Button("java調JS方法");button1.setOnAction(event -> {try {JSObject win = (JSObject) webEngine.executeScript("window");//webEngine.executeScript("show()");//執行js函數//win.call("show","a","b");win.eval("show('a','b')");} catch (Exception e) {e.printStackTrace();}});VBox stackPane = new VBox();stackPane.setSpacing(20);stackPane.getChildren().addAll(button1,browser);Scene scene = new Scene(stackPane,600,400);scene.setRoot(stackPane);stage.setScene(scene);stage.show();}A apps = new A();WebEngine webEngine;public static void main(String[] args) {launch(args);}//必須公有public static class A{public String showInfo(String info) {return "A{info="+ info +"}";}} }html代碼
filePage.html <html> <head><meta charset="UTF-8"> </head> <body> <div class="top"><button onclick="showJava()">JS調java方法</button><div >JS調java方法結果:<span id="infoJava"></span></div><div >java調JS方法結果:<span id="info"></span></div> </div> </body> <script>var apps = 'test';function showJava() {document.getElementById("infoJava").innerText= apps.showInfo("java");}function show(a,b) {document.getElementById("info").innerText="a="+a+",b="+b;} </script> </html>運行結果
總結
以上是生活随笔為你收集整理的JavaFX中WebView的java与JS代码互相调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1310 FPS!Team AU 超频
- 下一篇: 小白也能管理好自己的电脑小白也能管理好自