webView:javascript
是一个管理webEngine和显示它中间内容的节点。这个对象只能从fx的线程中建立。html
webEngine:java
是一个管理网页的不可见控件,它能够加载网页,建立文档模型,运行javascript,加载必要的样式,很重要的是它提供的网页的文档模型很不错,另外,它还能够实现java应用程序和javascript的双向通讯。web
1.访问页面api
1.经过任意的url地址进行访问,基于java.net包来实现,engine.load(String url)便可app
2.从in-memory String的方式(内存查找已有网址的字符串) 经过loadContent(java.lang.String)或者
loadContent(java.lang.String, java.lang.String)的方式实现。
dom
loadContent(java.lang.String URLcontext):直接加载给定的url内容,当你在内存中有一个要访问的url地址时很是快,或者你要加载一些url没法表示的数据时,用这个。ide
loadContent(java.lang.String URLcontext, java.lang.String contentType):和上面的相比,你能够指定要加载的类型,因此能够加载html之外的类型。函数
2.回调函数测试
这些回调函数被调用时,使用页面上的脚本运行请求对用户界面进行操做,例如,打开一个弹出窗口,或改变状态的文本。一个webengine对象不能处理这些请求内部,因此它将请求传递给相应的回调。若是没有回调是一个具体的操做定义,该请求被忽略。
The table below shows JavaScript user interface methods and properties with their corresponding WebEngine
callbacks:
JavaScript method/property | WebEngine callback |
---|---|
window.alert() |
onAlert |
window.confirm() |
confirmHandler |
window.open() |
createPopupHandler |
window.open() andwindow.close() |
onVisibilityChanged |
window.prompt() |
promptHandler |
Setting window.status |
onStatusChanged |
Setting any of the following:window.innerWidth , window.innerHeight ,window.outerWidth , window.outerHeight ,window.screenX , window.screenY ,window.screenLeft , window.screenTop |
onResized |
事例代码:
Stage stage; webEngine.setOnResized( new EventHandler<WebEvent<Rectangle2D>>() { public void handle(WebEvent<Rectangle2D> ev) { Rectangle2D r = ev.getData(); stage.setWidth(r.getWidth()); stage.setHeight(r.getHeight()); } });
也就是说,webEngine能够得到javascript的内容,以及用户的响应,实现了java程序和javascript的交互。
3.文档对象入口
也就是支持dom解析
EventListener listener = new EventListener() { public void handleEvent(Event ev) { Platform.exit(); } }; Document doc = webEngine.getDocument(); Element el = doc.getElementById("exit-app"); ((EventTarget) el).addEventListener("click", listener, false);
4.执行javascript
webEngine.executeScript("history.back()");
5.就是java和javascript的交互,能够参考api
下面是代码
[java] view plain copy
https://blog.csdn.net/oppo117/article/details/17354453