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>

运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】有效资源爬取并集

由于爬虫代码都不多&#xff0c; 所以我决定在这篇博文上更新所有我觉得比较实用的python代码 方便以后自己调用 环境:python3.7 百度图片爬虫 二次元图片爬取 唐三小说爬取 文件格式命名 百度图片爬虫 百度图片网站 import re import requests from urllib import err…

[编程入门]带参数宏定义练习:定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。

#include<bits/stdc.h> #define fun(a,b) ta;ab;bt; using namespace std;int main() {int a,b,t;cin>>a>>b;fun(a,b);cout<<a<<" "<<b;return 0; }

Jexus~docker与它产生了暖味

前段时间写了很多docker for .net core的文章&#xff0c;用来快速部署微服务相当给力&#xff0c;而尝到了香头的我们希望把.net frameworks的程序也使用docker来部署一下&#xff0c;那么接下来我就结果一下&#xff0c;在linux,docker上运行和部署.net frameworks应用程序的…

P3870-[TJOI2009]开关【分块】

正题 解题思路:https://www.luogu.org/recordnew/lists?uid52918&pidP3870 题目大意 n个灯&#xff0c;操作[0,l,r][0,l,r][0,l,r]表示l∼rl\sim rl∼r的灯取反&#xff0c;操作[1,l,r][1,l,r][1,l,r]表示询问l∼rl\sim rl∼r之间有多少灯亮着。 解题思路 分块&#xf…

Linux运维常用检查网络工具

一、Ping ping可以检查网络是否连通&#xff0c;可以很好地帮助我们分析和判定网络故障。 ping ip 二、Telnet telnet通常用来查看某个端口是否可访问。 telnet ip port 三、Curl curl是一个利用URL语法在命令行下工作的文件传输工具&#xff0c;1997年首次发行。它支持…

ABP从入门到精通(1):aspnet-zero-core项目启动及各项目源码说明

一.ABP的简单介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点&#xff0c;它旨在成为一个通用的WEB应用程序框架和项目模板。 ASP.NET Boilerplate 基于DDD的经典分层架构思想…

[编程入门]宏定义的练习:输入两个整数,求他们相除的余数。用带参的宏来实现,编程序。

#include<bits/stdc.h> #define N a%b; using namespace std;int main() {int a,b;cin>>a>>b;cout<<N;return 0; }

jzoj3518-进化序列(evolve)【位运算】

正题 题目大意 序列aaa 求有多少个数(x,y)(x,y)(x,y)对满足: x<yx<yx<y和axorax1orax2...oray<ma_x\ or\ a_{x1}\ or\ a_{x2}...or\ a_y<max​ or ax1​ or ax2​...or ay​<m 解题思路 首先对于每个y&#xff0c;x满足单调性。 如果(x,y)(x,y)(x,y)可以那…

【Python】Scrapy的安装与使用

scrapy的安装 不得姐网站 直接用命令 pip install scrapy 网络可能较慢&#xff0c;等等就好 另外windows环境下你还需要安装win32 我之前就是因为没有安装这个库&#xff0c;白忙活了一天&#xff0c;一直都是报错状态 pip install pypiwin32 scrapy的使用 cd到卓面或者其他…

[译]ASP.NET Core 2.0 带初始参数的中间件

问题 如何在ASP.NET Core 2.0向中间件传入初始参数&#xff1f; 答案 在一个空项目中&#xff0c;创建一个POCO&#xff08;Plain Old CLR Object&#xff09;来保存中间件所需的参数&#xff1a; public class GreetingOptions { public string GreetAt { get; set; } …

【LSB】图片隐写

今天接触到个比较好玩的项目 用的是纯htmljs可以将图片里附着文本或图片 经过网页加工就可以将一些隐秘的信息传入到图片里面去了。 这个功能类似于用一种笔在纸上写字&#xff0c;这种字在正常情况下看不出来&#xff0c;而经过泼水之后就会有字的显现。 这种隐写功能也具…

[编程入门]宏定义之闰年判断:给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计

#include<bits/stdc.h> #define LEAP_YEAR(y) ((y%40&&y%100!0)||(y%4000)?"L":"N") using namespace std;int main() {int year;cin>>year;cout<<LEAP_YEAR(year);return 0; }

jzoj5223-B【矩阵乘法】

正题 题目大意 3∗33*33∗3的矩阵上每个格子都有机器人&#xff0c;每次可以向相邻格子移动或不动(一个格子上可以有多个机器人)&#xff0c;求移动nnn次后每个格子上都有机器人的移动方案数。 解题思路 用矩阵乘法计算出每个格子的机器人移动到每个格子的方案总数。 在枚举最…

框架学习与探究之AOP--Castle DynamicProxy

前言 先说一点废话&#xff0c;在此之前博主也在早期就接触了或者看了些许AOP相关的文章&#xff0c;然后再去做了一些相关的实验&#xff0c;但是始终没有将AOP内化到自己的内功心法当中去&#xff0c;包括从概念还是应用环境&#xff0c;以及当前生态当中的AOP工具等等&#…

【Css】基础属性(一)

给超过div的文本添加滑轮效果&#xff08;必须先对其高度进行设置&#xff09; overflow:auto; 给按钮添加圆润效果 border-radius: 20px; 设置组件居中&#xff08;文本居中&#xff09;&#xff0c;在组件外加div&#xff0c;给div加如下属性 text-align:center; 上文不奏效&…

jzoj100042-保留道路【最小生成树,图论】

正题 题目大意 一张无向图&#xff0c;求剩下一些边使图联通且wG∗max{gVi}wS∗max{sVi}wG*max\{g_{V_i}\}wS*max\{s_{V_i}\}wG∗max{gVi​​}wS∗max{sVi​​}最小 VVV表示选的边集 解题思路 我们可以枚举max{si}max\{s_i\}max{si​}的值&#xff0c;然后用ggg跑最小生成树。…

C++描述杭电OJ 2000. ASCII码排序 ||

C描述杭电OJ 2000. ASCII码排序 || Problem Description 输入三个字符后&#xff0c;按各字符的ASCII码从小到大的顺序输出这三个字符。 Input 输入数据有多组&#xff0c;每组占一行&#xff0c;有三个字符组成&#xff0c;之间无空格。 Output 对于每组输入数据&#xf…

【LSB】图片隐写文档大纲

第一章 绪论 1.1研究背景 1.2研究意义 1.3主要工作 第二章 图片隐写和LSB算法 2.1关于图片隐写术 2.2LSB算法 第三章 系统设计与实现 3.1图像的加载 3.2文本的预编码 3.3文字编码 3.4图片编码 第四章 功能测试及线上部署 4.1功能测试 4.2线上部署 第五章 总结及展望 5.1总结…

C++描述杭电OJ 2005.第几天? ||

C描述杭电OJ 2005.第几天&#xff1f;|| Problem Description 给定一个日期&#xff0c;输出这个日期是该年的第几天。 Input 输入数据有多组&#xff0c;每组占一行&#xff0c;数据格式为YYYY/MM/DD组成&#xff0c;具体参见sample input ,另外&#xff0c;可以向你确保所…

.NET下使用HTTP请求的正确姿势

一、前言 去年9月份的时候我看到过外国朋友关于.NET Framework下HttpClient缺陷的分析后对HttpClient有了一定的了解。前几日也有园友写了一篇关于HttpClient的分析文章, 于是我想深入探索一下在.NET下使用HTTP请求的正确姿势。姿势不是越多越好, 而在于精不精。如果不深入了解…