- java.lang.Object
-
- javafx.scene.web.WebEngine
-
public final class WebEngine extends Object
WebEngine
是一个能够一次管理一个网页的非视觉对象。 它加载网页,创建他们的文档模型,根据需要应用样式,并在页面上运行JavaScript。 它提供对当前页面的文档模型的访问,并实现Java应用程序和页面的JavaScript代码之间的双向通信。加载网页
WebEngine
类提供了两种将内容加载到WebEngine
对象中的方法:- 从使用
load(java.lang.String)
方法的任意URL。 此方法使用java.net
包进行网络访问和协议处理。 - 从使用
loadContent(java.lang.String, java.lang.String)
和loadContent(java.lang.String)
方法的内存中的字符串。
加载总是发生在后台线程上。 调度后台作业后立即启动加载的方法。 要跟踪进度和/或取消作业,请使用
getLoadWorker()
方法中提供的Worker
实例。以下示例在加载成功完成时更改了阶段标题:
import javafx.concurrent.Worker.State; final Stage stage; webEngine.getLoadWorker().stateProperty().addListener( new ChangeListener<State>() { public void changed(ObservableValue ov, State oldState, State newState) { if (newState == State.SUCCEEDED) { stage.setTitle(webEngine.getLocation()); } } }); webEngine.load("http://javafx.com");
用户界面回调
可以向
WebEngine
对象注册多个用户界面回调。 当在页面上运行的脚本请求执行用户界面操作时,例如打开弹出窗口或更改状态文本,这些回调将被调用。 一个WebEngine
对象不能在内部处理这样的请求,所以它将请求传递给相应的回调。 如果没有为特定操作定义回调,则会默认忽略该请求。下表显示了JavaScript用户界面方法和属性及其对应的
JavaScript Callback Table JavaScript method/property WebEngine callbackWebEngine
回调:window.alert()
onAlert
window.confirm()
confirmHandler
window.open()
createPopupHandler
window.open()
and
window.close()
onVisibilityChanged
window.prompt()
promptHandler
Settingwindow.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
对象为其网页创建和管理文档对象模型(DOM)。 可以使用Java DOM Core类来访问和修改该模型。getDocument()
方法提供对模型根的访问。 此外,还支持DOM事件规范来定义Java代码中的事件处理程序。以下示例将Java事件侦听器附加到网页的元素。 单击该元素将导致应用程序退出:
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);
评估JavaScript表达式
可以使用
executeScript(java.lang.String)
方法在当前页面的上下文中执行任意JavaScript代码。 例如:webEngine.executeScript("history.back()");
执行结果将返回给调用者,如下一节所述。
将JavaScript值映射到Java对象
JavaScript值使用明显的Java类来表示:null变为Java null; 一个布尔变成了一个java.lang.Boolean
; 一个字符串变成了一个java.lang.String
。 一个数字可以是java.lang.Double
或一个java.lang.Integer
,取决于。 未定义的值映射到值为"undefined"
的特定唯一String对象。如果结果是一个JavaScript对象,它将被包装为
JSObject
类的一个实例。 (作为一个特殊情况,如果JavaScript对象是JavaRuntimeObject
中讨论的JavaRuntimeObject
,那么将提取原始的Java对象。)JSObject
类是一种代理,可以访问其底层JavaScript对象的方法和属性。 最常用的JSObject
方法是getMember
(读取命名属性),setMember
(用于设置或定义属性)和call
(以调用函数值属性)。DOM
Node
被映射到一个对象,它们都扩展了JSObject
并实现了相应的DOM接口。 要获得一个JSObject
对象为Node
只是做一个演员:JSObject jdoc = (JSObject) webEngine.getDocument();
在某些情况下,上下文提供了指导转换的特定Java类型。 例如,如果从JavaScript表达式设置Java
String
字段,则JavaScript值将转换为字符串。将Java对象映射到JavaScript值
JSObject
方法setMember
和call
的参数将Java对象传递给JavaScript环境。 这大致上述的JavaScript到Java映射的逆:爪哇String
,Number
,或Boolean
对象被转换到明显的JavaScript值。 将一个JSObject
对象转换为原始的包装JavaScript对象。 否则将创建一个JavaRuntimeObject
。 这是作为Java对象的代理的JavaScript对象,因为JavaRuntimeObject
访问属性导致访问具有相同名称的Java字段或方法。需要注意的是,Java对象使用结合
JSObject.setMember
,JSObject.setSlot
,并JSObject.call
使用弱引用来实现。 这意味着Java对象可以被垃圾回收,导致对JavaScript对象的后续访问不起作用。从JavaScript回调Java
JSObject.setMember
方法有助于将JavaScript的上调从Java转换为Java代码,如以下示例所示。 Java代码建立了一个名为app
的新JavaScript对象。 该对象有一个公共成员,方法exit
。public class JavaApplication { public void exit() { Platform.exit(); } } ... JavaApplication javaApp = new JavaApplication(); JSObject window = (JSObject) webEngine.executeScript("window"); window.setMember("app", javaApp);
<a href="" onclick="app.exit()">Click here to exit application</a>
当用户点击链接时,应用程序关闭。
请注意,在上述示例中,应用程序保留对
JavaApplication
实例的引用。 这是JavaScript的回调执行所需方法所必需的。在以下示例中,该应用程序不包含对Java对象的引用:
JSObject window = (JSObject) webEngine.executeScript("window"); window.setMember("app", new JavaApplication());
在这种情况下,由于属性值是本地对象,
"new JavaApplication()"
该值可能会在下一个GC循环中被垃圾回收。当用户点击链接时,它不保证执行回调方法
exit
。如果有多个具有给定名称的Java方法,那么引擎将选择一个与调用中的参数数相匹配的方法。 (Varargs不处理。)如果有多个具有正确数量的参数,则选择未指定的。
您可以通过在“扩展方法名称”中列出参数类型来选择特定的重载方法,其格式为
"method_name(param_type1,...,param_typen)"
。 通常你会写JavaScript表达式:receiver["method_name(param_type1,...,param_typeN)"](arg1,...,argN)
Java类和方法必须都被声明为public。
将应用程序部署为模块
如果传递给JavaScript的任何Java类都在命名模块中,那么
javafx.web
模块必须能够反映javafx.web
。 如果模块opens
将包含的包至少为javafx.web
模块,则可以反射访问类。 否则,将不会调用该方法,并且不会产生错误或警告。例如,如果
com.foo.MyClass
在foo.app
模块中,则module-info.java
可能如下所示:module foo.app { opens com.foo to javafx.web; }
或者,如果模块
exports
无条件地包含包装,则可以反射地访问类。穿线
必须仅从JavaFX应用程序线程创建和访问
WebEngine
对象。 此规则也适用于从WebEngine
对象获取的任何DOM和JavaScript对象。- 从以下版本开始:
- JavaFX 2.0
- 从使用
-
-
Property Summary
-
方法摘要
-
-
-
Property Detail
-
document
public final ReadOnlyObjectProperty<Document> documentProperty
当前网页的文档对象。 如果网页加载失败,则值为null
。- 另请参见:
-
getDocument()
-
location
public final ReadOnlyStringProperty locationProperty
当前网页的URL。 如果当前页面没有URL,则该值为空字符串。- 另请参见:
-
getLocation()
-
title
public final ReadOnlyStringProperty titleProperty
当前网页的标题。 如果当前页面没有标题,则值为null
。- 另请参见:
-
getTitle()
-
javaScriptEnabled
public final BooleanProperty javaScriptEnabledProperty
指定是否启用JavaScript执行。- Default value:
- 真正
- 从以下版本开始:
- JavaFX 2.2
- 另请参见:
-
isJavaScriptEnabled()
,setJavaScriptEnabled(boolean)
-
userStyleSheetLocation
public final StringProperty userStyleSheetLocationProperty
用户样式表的位置为字符串URL。这应该是一个本地URL,即无论是
'data:'
,'file:'
,或'jar:'
。 出于安全考虑,不允许使用远程URL。- Default value:
- 空值
- 从以下版本开始:
- JavaFX 2.2
- 另请参见:
-
getUserStyleSheetLocation()
,setUserStyleSheetLocation(String)
-
userDataDirectory
public final ObjectProperty<File> userDataDirectoryProperty
指定此WebEngine
用于存储本地用户数据的目录。如果此属性的值不是
null
,则WebEngine
将尝试将本地用户数据存储在相应的目录中。 如果此属性的值为null
,则WebEngine
将尝试将本地用户数据存储在自动选择的系统相关用户和应用程序特定目录中。当
WebEngine
第一次即将开始加载网页或执行脚本时,它会检查它是否可以实际使用此属性指定的目录。 如果由于某种原因检查失败,则WebEngine
调用WebEngine.onError
事件处理程序(如果有),描述原因的WebErrorEvent
。 如果调用的事件处理程序修改了userDataDirectory
属性,那么WebEngine
在处理程序返回时立即重试新值。 如果处理程序不修改userDataDirectory
属性(这是默认值),则WebEngine
不会继续,而没有本地用户数据。一旦
WebEngine
开始加载网页或执行脚本,对此属性的更改对WebEngine
存储或将存储本地用户数据的位置没有影响。目前,此属性指定的目录仅用于存储支持
window.localStorage
对象的数据。 将来可以添加更多类型的数据。- Default value:
-
null
- 从以下版本开始:
- JavaFX 8.0
- 另请参见:
-
getUserDataDirectory()
,setUserDataDirectory(File)
-
userAgent
public final StringProperty userAgentProperty
指定用户代理ID字符串。 该字符串是User-Agent
HTTP标头的值。- Default value:
- 系统依赖
- 从以下版本开始:
- JavaFX 8.0
- 另请参见:
-
getUserAgent()
,setUserAgent(String)
-
onAlert
public final ObjectProperty<EventHandler<WebEvent<String>>> onAlertProperty
JavaScriptalert
处理程序属性。 当在网页上运行的脚本调用alert
函数时,将调用此处理程序。- 另请参见:
-
getOnAlert()
,setOnAlert(EventHandler)
-
onStatusChanged
public final ObjectProperty<EventHandler<WebEvent<String>>> onStatusChangedProperty
JavaScript状态处理程序属性。 当在网页上运行的脚本设置window.status
属性时,调用此处理程序。
-
onResized
public final ObjectProperty<EventHandler<WebEvent<Rectangle2D>>> onResizedProperty
JavaScript窗口调整大小处理程序属性。 当在网页上运行的脚本移动或调整window
对象大小时,将调用此处理程序。
-
onVisibilityChanged
public final ObjectProperty<EventHandler<WebEvent<Boolean>>> onVisibilityChangedProperty
JavaScript窗口可见性处理器属性。 当在Web页面上运行的脚本改变window
对象的可见性时,将调用此处理程序。
-
createPopupHandler
public final ObjectProperty<Callback<PopupFeatures,WebEngine>> createPopupHandlerProperty
JavaScript弹出窗口处理程序属性。 当在网页上运行的脚本请求创建弹出窗口时,将调用此处理程序。为了满足此请求,处理程序可以创建新的
WebEngine
,附加可见性处理程序和可选的大小调整处理程序,并返回新创建的引擎。 要阻止弹出窗口,处理程序应返回null
。默认情况下,安装了一个弹出窗口处理程序,可在此
WebEngine
中打开弹出窗口。
-
confirmHandler
public final ObjectProperty<Callback<String,Boolean>> confirmHandlerProperty
JavaScriptconfirm
处理程序属性。 当在网页上运行的脚本调用confirm
函数时,调用此处理程序。一个实现可能会显示一个对话框,带有和否选项,并返回用户的选择。
-
promptHandler
public final ObjectProperty<Callback<PromptData,String>> promptHandlerProperty
JavaScriptprompt
处理程序属性。 当在网页上运行的脚本调用prompt
函数时,调用此处理程序。实现可能会显示一个带有文本字段的对话框,并返回用户的输入。
-
onError
public final ObjectProperty<EventHandler<WebErrorEvent>> onErrorProperty
当发生错误时调用事件处理程序。- Default value:
-
null
- 从以下版本开始:
- JavaFX 8.0
- 另请参见:
-
getOnError()
,setOnError(EventHandler)
-
-
构造方法详细信息
-
WebEngine
public WebEngine()
创建一个新的引擎。
-
WebEngine
public WebEngine(String url)
创建一个新的引擎并加载一个网页。- 参数
-
url
- 要加载的网页的URL
-
-
方法详细信息
-
getDocument
public final Document getDocument()
获取属性文档的值。- Property description:
-
当前网页的文档对象。
如果网页加载失败,则值为
null
。
-
documentProperty
public final ReadOnlyObjectProperty<Document> documentProperty()
当前网页的文档对象。 如果网页加载失败,则值为null
。- 另请参见:
-
getDocument()
-
getLocation
public final String getLocation()
获取属性位置的值。- Property description:
- 当前网页的URL。 如果当前页面没有URL,则该值为空字符串。
-
locationProperty
public final ReadOnlyStringProperty locationProperty()
当前网页的URL。 如果当前页面没有URL,则该值为空字符串。- 另请参见:
-
getLocation()
-
getTitle
public final String getTitle()
获取属性标题的值。- Property description:
-
当前网页的标题。
如果当前页面没有标题,则值为
null
。
-
titleProperty
public final ReadOnlyStringProperty titleProperty()
当前网页的标题。 如果当前页面没有标题,则值为null
。- 另请参见:
-
getTitle()
-
setJavaScriptEnabled
public final void setJavaScriptEnabled(boolean value)
设置属性javaScriptEnabled的值。- Property description:
- 指定是否启用JavaScript执行。
- Default value:
- 真正
- 从以下版本开始:
- JavaFX 2.2
-
isJavaScriptEnabled
public final boolean isJavaScriptEnabled()
获取属性javaScriptEnabled的值。- Property description:
- 指定是否启用JavaScript执行。
- Default value:
- 真正
- 从以下版本开始:
- JavaFX 2.2
-
javaScriptEnabledProperty
public final BooleanProperty javaScriptEnabledProperty()
指定是否启用JavaScript执行。- Default value:
- 真正
- 从以下版本开始:
- JavaFX 2.2
- 另请参见:
-
isJavaScriptEnabled()
,setJavaScriptEnabled(boolean)
-
setUserStyleSheetLocation
public final void setUserStyleSheetLocation(String value)
设置属性userStyleSheetLocation的值。- Property description:
-
用户样式表的位置为字符串URL。
这应该是一个本地URL,即无论是
'data:'
,'file:'
,或'jar:'
。 出于安全考虑,不允许使用远程URL。 - Default value:
- 空值
- 从以下版本开始:
- JavaFX 2.2
-
getUserStyleSheetLocation
public final String getUserStyleSheetLocation()
获取属性userStyleSheetLocation的值。- Property description:
-
用户样式表的位置为字符串URL。
这应该是一个本地URL,即无论是
'data:'
,'file:'
,或'jar:'
。 出于安全考虑,不允许使用远程URL。 - Default value:
- 空值
- 从以下版本开始:
- JavaFX 2.2
-
userStyleSheetLocationProperty
public final StringProperty userStyleSheetLocationProperty()
用户样式表的位置为字符串URL。这应该是一个本地URL,即无论是
'data:'
,'file:'
,或'jar:'
。 出于安全考虑,不允许使用远程URL。- Default value:
- 空值
- 从以下版本开始:
- JavaFX 2.2
- 另请参见:
-
getUserStyleSheetLocation()
,setUserStyleSheetLocation(String)
-
getUserDataDirectory
public final File getUserDataDirectory()
获取属性userDataDirectory的值。- Property description:
-
指定此
WebEngine
要用于存储本地用户数据的目录。如果此属性的值不是
null
,则WebEngine
将尝试将本地用户数据存储在相应的目录中。 如果此属性的值为null
,则WebEngine
将尝试将本地用户数据存储在自动选择的系统相关用户和应用程序特定目录中。当
WebEngine
即将开始加载网页或第一次执行脚本时,它会检查它是否可以实际使用此属性指定的目录。 如果由于某些原因检查失败,则WebEngine
调用WebEngine.onError
事件处理程序(如果有),描述原因的WebErrorEvent
。 如果调用的事件处理程序修改了userDataDirectory
属性,那么WebEngine
在处理程序返回时立即重试新值。 如果处理程序不修改userDataDirectory
属性(这是默认值),则WebEngine
将WebEngine
继续使用本地用户数据。一旦
WebEngine
已经开始加载网页或执行脚本,对此属性的更改对WebEngine
存储或将存储本地用户数据的位置没有影响。目前,此属性指定的目录仅用于存储支持
window.localStorage
对象的数据。 将来可以添加更多类型的数据。 - Default value:
-
null
- 从以下版本开始:
- JavaFX 8.0
-
setUserDataDirectory
public final void setUserDataDirectory(File value)
设置属性userDataDirectory的值。- Property description:
-
指定此
WebEngine
用于存储本地用户数据的目录。如果此属性的值不是
null
,则WebEngine
将尝试将本地用户数据存储在相应的目录中。 如果此属性的值为null
,则WebEngine
将尝试将本地用户数据存储在自动选择的系统相关的用户和应用程序特定目录中。当
WebEngine
第一次即将开始加载网页或执行脚本时,它会检查它是否可以实际使用此属性指定的目录。 如果由于某种原因检查失败,则WebEngine
调用WebEngine.onError
事件处理程序(如果有),描述原因的WebErrorEvent
。 如果调用的事件处理程序修改了userDataDirectory
属性,那么WebEngine
在处理程序返回时立即重试新值。 如果处理程序不修改userDataDirectory
属性(这是默认值),则WebEngine
不会继续,而没有本地用户数据。一旦
WebEngine
开始加载网页或执行脚本,对此属性的更改对WebEngine
存储或将存储本地用户数据的位置没有影响。目前,此属性指定的目录仅用于存储支持
window.localStorage
对象的数据。 将来可以添加更多类型的数据。 - Default value:
-
null
- 从以下版本开始:
- JavaFX 8.0
-
userDataDirectoryProperty
public final ObjectProperty<File> userDataDirectoryProperty()
指定此WebEngine
要用于存储本地用户数据的目录。如果此属性的值不是
null
,则WebEngine
将尝试将本地用户数据存储在相应的目录中。 如果此属性的值为null
,则WebEngine
将尝试将本地用户数据存储在自动选择的系统相关用户和应用程序特定目录中。当
WebEngine
第一次即将开始加载网页或执行脚本时,它会检查它是否可以实际使用此属性指定的目录。 如果由于某种原因检查失败,则WebEngine
调用WebEngine.onError
事件处理程序(如果有),描述原因的WebErrorEvent
。 如果调用的事件处理程序修改了userDataDirectory
属性,那么WebEngine
在处理程序返回时立即重试新值。 如果处理程序不修改userDataDirectory
属性(这是默认值),则WebEngine
将WebEngine
继续,而没有本地用户数据。一旦
WebEngine
开始加载网页或执行脚本,对此属性的更改对WebEngine
存储或将存储本地用户数据的位置没有影响。目前,此属性指定的目录仅用于存储支持
window.localStorage
对象的数据。 将来可以添加更多类型的数据。- Default value:
-
null
- 从以下版本开始:
- JavaFX 8.0
- 另请参见:
-
getUserDataDirectory()
,setUserDataDirectory(File)
-
setUserAgent
public final void setUserAgent(String value)
设置属性userAgent的值。- Property description:
-
指定用户代理ID字符串。
该字符串是
User-Agent
HTTP头的值。 - Default value:
- 系统依赖
- 从以下版本开始:
- JavaFX 8.0
-
getUserAgent
public final String getUserAgent()
获取属性userAgent的值。- Property description:
-
指定用户代理ID字符串。
此字符串是
User-Agent
HTTP标头的值。 - Default value:
- 系统依赖
- 从以下版本开始:
- JavaFX 8.0
-
userAgentProperty
public final StringProperty userAgentProperty()
指定用户代理ID字符串。 该字符串是User-Agent
HTTP标头的值。- Default value:
- 系统依赖
- 从以下版本开始:
- JavaFX 8.0
- 另请参见:
-
getUserAgent()
,setUserAgent(String)
-
getOnAlert
public final EventHandler<WebEvent<String>> getOnAlert()
获取属性onAlert的值。- Property description:
-
JavaScript
alert
处理程序属性。 当在网页上运行的脚本调用alert
函数时,调用此处理程序。
-
setOnAlert
public final void setOnAlert(EventHandler<WebEvent<String>> handler)
设置属性onAlert的值。- Property description:
-
JavaScript
alert
处理程序属性。 当在网页上运行的脚本调用alert
函数时,调用此处理程序。
-
onAlertProperty
public final ObjectProperty<EventHandler<WebEvent<String>>> onAlertProperty()
JavaScriptalert
处理程序属性。 当在网页上运行的脚本调用alert
函数时,将调用此处理程序。- 另请参见:
-
getOnAlert()
,setOnAlert(EventHandler)
-
getOnStatusChanged
public final EventHandler<WebEvent<String>> getOnStatusChanged()
获取属性onStatusChanged的值。- Property description:
-
JavaScript状态处理程序属性。
当在网页上运行的脚本设置
window.status
属性时,调用此处理程序。
-
setOnStatusChanged
public final void setOnStatusChanged(EventHandler<WebEvent<String>> handler)
设置属性onStatusChanged的值。- Property description:
-
JavaScript状态处理程序属性。
当在网页上运行的脚本设置
window.status
属性时,调用此处理程序。
-
onStatusChangedProperty
public final ObjectProperty<EventHandler<WebEvent<String>>> onStatusChangedProperty()
JavaScript状态处理程序属性。 当在网页上运行的脚本设置window.status
属性时,调用此处理程序。
-
getOnResized
public final EventHandler<WebEvent<Rectangle2D>> getOnResized()
获取属性onResized的值。- Property description:
-
JavaScript窗口调整大小处理程序属性。
当在网页上运行的脚本移动或调整
window
对象大小时,将调用此处理程序。
-
setOnResized
public final void setOnResized(EventHandler<WebEvent<Rectangle2D>> handler)
设置属性onResized的值。- Property description:
-
JavaScript窗口调整大小处理程序属性。
当在网页上运行的脚本移动或调整
window
对象大小时,将调用此处理程序。
-
onResizedProperty
public final ObjectProperty<EventHandler<WebEvent<Rectangle2D>>> onResizedProperty()
JavaScript窗口调整大小处理程序属性。 当在网页上运行的脚本移动或调整window
对象大小时,将调用此处理程序。
-
getOnVisibilityChanged
public final EventHandler<WebEvent<Boolean>> getOnVisibilityChanged()
获取属性onVisibilityChanged的值。- Property description:
-
JavaScript窗口可见性处理器属性。
当在网页上运行的脚本改变
window
对象的可见性时,调用此处理程序。
-
setOnVisibilityChanged
public final void setOnVisibilityChanged(EventHandler<WebEvent<Boolean>> handler)
设置属性onVisibilityChanged的值。- Property description:
-
JavaScript窗口可见性处理器属性。
当在网页上运行的脚本改变
window
对象的可见性时,将调用此处理程序。
-
onVisibilityChangedProperty
public final ObjectProperty<EventHandler<WebEvent<Boolean>>> onVisibilityChangedProperty()
JavaScript窗口可见性处理器属性。 当在网页上运行的脚本改变window
对象的可见性时,将调用此处理程序。
-
getCreatePopupHandler
public final Callback<PopupFeatures,WebEngine> getCreatePopupHandler()
获取属性createPopupHandler的值。- Property description:
-
JavaScript弹出窗口处理程序属性。
当在网页上运行的脚本请求创建弹出窗口时,将调用此处理程序。
为了满足此请求,处理程序可以创建一个新的
WebEngine
,附加可见性处理程序和可选的大小调整处理程序,并返回新创建的引擎。 要阻止弹出窗口,处理程序应返回null
。默认情况下,安装了一个弹出式处理程序,可在此
WebEngine
中打开弹出窗口。
-
setCreatePopupHandler
public final void setCreatePopupHandler(Callback<PopupFeatures,WebEngine> handler)
设置属性createPopupHandler的值。- Property description:
-
JavaScript弹出窗口处理程序属性。
当在网页上运行的脚本请求创建弹出窗口时,将调用此处理程序。
要满足此请求,处理程序可以创建新的
WebEngine
,附加可见性处理程序和可选的大小调整处理程序,并返回新创建的引擎。 要阻止弹出窗口,处理程序应返回null
。默认情况下,安装了一个弹出窗口处理程序,可在此
WebEngine
中打开弹出窗口。
-
createPopupHandlerProperty
public final ObjectProperty<Callback<PopupFeatures,WebEngine>> createPopupHandlerProperty()
JavaScript弹出窗口处理程序属性。 当在网页上运行的脚本请求创建弹出窗口时,将调用此处理程序。为了满足此请求,处理程序可以创建新的
WebEngine
,附加可见性处理程序和可选的大小调整处理程序,并返回新创建的引擎。 要阻止弹出窗口,处理程序应返回null
。默认情况下,安装了一个弹出窗口处理程序,可在此
WebEngine
中打开弹出窗口。
-
getConfirmHandler
public final Callback<String,Boolean> getConfirmHandler()
获取属性confirmHandler的值。- Property description:
-
JavaScript
confirm
处理程序属性。 当在网页上运行的脚本调用confirm
函数时,调用此处理程序。一个实现可能会显示一个对话框,带有和否选项,并返回用户的选择。
-
setConfirmHandler
public final void setConfirmHandler(Callback<String,Boolean> handler)
设置属性confirmHandler的值。- Property description:
-
JavaScript
confirm
处理程序属性。 当在网页上运行的脚本调用confirm
函数时,调用此处理程序。一个实现可能会显示一个对话框,带有和否选项,并返回用户的选择。
-
confirmHandlerProperty
public final ObjectProperty<Callback<String,Boolean>> confirmHandlerProperty()
JavaScriptconfirm
处理程序属性。 当在网页上运行的脚本调用confirm
函数时,调用此处理程序。一个实现可能会显示一个对话框,带有和否选项,并返回用户的选择。
-
getPromptHandler
public final Callback<PromptData,String> getPromptHandler()
获取属性promptHandler的值。- Property description:
-
JavaScript
prompt
处理程序属性。 当在网页上运行的脚本调用prompt
函数时,调用此处理程序。实现可能会显示一个带有文本字段的对话框,并返回用户的输入。
-
setPromptHandler
public final void setPromptHandler(Callback<PromptData,String> handler)
设置属性promptHandler的值。- Property description:
-
JavaScript
prompt
处理程序属性。 当在网页上运行的脚本调用prompt
函数时,调用此处理程序。实现可能会显示一个带有文本字段的对话框,并返回用户的输入。
-
promptHandlerProperty
public final ObjectProperty<Callback<PromptData,String>> promptHandlerProperty()
JavaScriptprompt
处理程序属性。 当在网页上运行的脚本调用prompt
函数时,调用此处理程序。实现可能会显示一个带有文本字段的对话框,并返回用户的输入。
-
getOnError
public final EventHandler<WebErrorEvent> getOnError()
获取属性onError的值。- Property description:
- 当发生错误时调用事件处理程序。
- Default value:
-
null
- 从以下版本开始:
- JavaFX 8.0
-
setOnError
public final void setOnError(EventHandler<WebErrorEvent> handler)
设置属性onError的值。- Property description:
- 当发生错误时调用事件处理程序。
- Default value:
-
null
- 从以下版本开始:
- JavaFX 8.0
-
onErrorProperty
public final ObjectProperty<EventHandler<WebErrorEvent>> onErrorProperty()
当发生错误时调用事件处理程序。- Default value:
-
null
- 从以下版本开始:
- JavaFX 8.0
- 另请参见:
-
getOnError()
,setOnError(EventHandler)
-
load
public void load(String url)
将网页加载到此引擎中。 此方法启动异步加载并立即返回。- 参数
-
url
- 要加载的网页的URL
-
loadContent
public void loadContent(String content)
直接加载给定的HTML内容。 当您在内存中组合HTML字符串或从某些无法通过URL访问的系统加载时,此方法非常有用(例如,HTML文本可能来自数据库)。 和load(String)
一样 ,这个方法是异步的。- 参数
-
content
- 要加载的HTML内容
-
loadContent
public void loadContent(String content, String contentType)
直接载入给定的内容。 当您将内容组合在内存中或从某些无法通过URL访问的系统加载(例如,SVG文本可能来自数据库)时,此方法很有用。 与load(String)
一样 ,此方法是异步的。 此方法还允许您指定要加载的字符串的内容类型,因此可以选择性地支持除了HTML之外的其他类型。- 参数
-
content
- 要加载的HTML内容 -
contentType
- 要加载的内容类型
-
reload
public void reload()
重新加载当前页面,无论是从URL加载还是直接从loadContent
方法之一的字符串加载。
-
getHistory
public WebHistory getHistory()
返回会话历史记录对象。- 结果
- 历史对象
- 从以下版本开始:
- JavaFX 2.2
-
executeScript
public Object executeScript(String script)
在当前页面的上下文中执行脚本。- 参数
-
script
- 脚本 - 结果
-
执行结果,使用以下规则转换为Java对象:
- JavaScript Int32转换为
java.lang.Integer
- 其他JavaScript编号至
java.lang.Double
- JavaScript字符串到
java.lang.String
- JavaScript布尔值为
java.lang.Boolean
- JavaScript
null
至null
- 大多数JavaScript对象被打包为
netscape.javascript.JSObject
- JavaScript JSNode对象被映射到
netscape.javascript.JSObject
实例,也实现了org.w3c.dom.Node
- 一个特殊的例子是JavaScript类
JavaRuntimeObject
,用于将Java对象包装为JavaScript值 - 在这种情况下,我们只是提取原始的Java值。
- JavaScript Int32转换为
-
print
public void print(PrinterJob job)
使用给定的打印机作业打印当前网页。此方法不修改作业的状态,也不调用
PrinterJob.endJob()
,因此该作业可以安全地重用。- 参数
-
job
- 用于打印的打印机作业 - 从以下版本开始:
- JavaFX 8.0
-
-