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