WebEngine
is a non-visual object capable of managing one Web page
at a time. It loads Web pages, creates their document models, applies
styles as necessary, and runs JavaScript on pages. It provides access
to the document model of the current page, and enables two-way
communication between a Java application and JavaScript code of the page.
Loading Web Pages
The WebEngine
class provides two ways to load content into a
WebEngine
object:
- From an arbitrary URL using the
load(java.lang.String)
method. This method uses thejava.net
package for network access and protocol handling. - From an in-memory String using the
loadContent(java.lang.String, java.lang.String)
andloadContent(java.lang.String)
methods.
Loading always happens on a background thread. Methods that initiate
loading return immediately after scheduling a background job. To track
progress and/or cancel a job, use the Worker
instance available from the getLoadWorker()
method.
The following example changes the stage title when loading completes successfully:
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");
User Interface Callbacks
A number of user interface callbacks may be registered with a
WebEngine
object. These callbacks are invoked when a script running
on the page requests a user interface operation to be performed, for
example, opens a popup window or changes status text. A WebEngine
object cannot handle such requests internally, so it passes the request to
the corresponding callbacks. If no callback is defined for a specific
operation, the request is silently ignored.
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 |
The following example shows a callback that resizes a browser window:
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());
}
});
Access to Document Model
The WebEngine
objects create and manage a Document Object Model
(DOM) for their Web pages. The model can be accessed and modified using
Java DOM Core classes. The getDocument()
method provides access
to the root of the model. Additionally DOM Event specification is supported
to define event handlers in Java code.
The following example attaches a Java event listener to an element of a Web page. Clicking on the element causes the application to exit:
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);
Evaluating JavaScript expressions
It is possible to execute arbitrary JavaScript code in the context of
the current page using the executeScript(java.lang.String)
method. For example:
webEngine.executeScript("history.back()");
The execution result is returned to the caller, as described in the next section.
Mapping JavaScript values to Java objects
JavaScript values are represented using the obvious Java classes: null becomes Java null; a boolean becomes ajava.lang.Boolean
;
and a string becomes a java.lang.String
.
A number can be java.lang.Double
or a java.lang.Integer
,
depending.
The undefined value maps to a specific unique String
object whose value is "undefined"
.
If the result is a
JavaScript object, it is wrapped as an instance of the
JSObject
class.
(As a special case, if the JavaScript object is
a JavaRuntimeObject
as discussed in the next section,
then the original Java object is extracted instead.)
The JSObject
class is a proxy that provides access to
methods and properties of its underlying JavaScript object.
The most commonly used JSObject
methods are
getMember
(to read a named property),
setMember
(to set or define a property),
and call
(to call a function-valued property).
A DOM Node
is mapped to an object that both extends
JSObject
and implements the appropriate DOM interfaces.
To get a JSObject
object for a Node
just do a cast:
JSObject jdoc = (JSObject) webEngine.getDocument();
In some cases the context provides a specific Java type that guides
the conversion.
For example if setting a Java String
field from a JavaScript
expression, then the JavaScript value is converted to a string.
Mapping Java objects to JavaScript values
The arguments of theJSObject
methods setMember
and
call
pass Java objects to the JavaScript environment.
This is roughly the inverse of the JavaScript-to-Java mapping
described above:
Java String
, Number
, or Boolean
objects
are converted to the obvious JavaScript values. A JSObject
object is converted to the original wrapped JavaScript object.
Otherwise a JavaRuntimeObject
is created. This is
a JavaScript object that acts as a proxy for the Java object,
in that accessing properties of the JavaRuntimeObject
causes the Java field or method with the same name to be accessed.
Note that the Java objects bound using
JSObject.setMember
,
JSObject.setSlot
, and
JSObject.call
are implemented using weak references. This means that the Java object
can be garbage collected, causing subsequent accesses to the JavaScript
objects to have no effect.
Calling back to Java from JavaScript
The JSObject.setMember
method is useful to enable upcalls from JavaScript
into Java code, as illustrated by the following example. The Java code
establishes a new JavaScript object named app
. This object has one
public member, the method exit
.
public class JavaApplication {
public void exit() {
Platform.exit();
}
}
...
JavaApplication javaApp = new JavaApplication();
JSObject window = (JSObject) webEngine.executeScript("window");
window.setMember("app", javaApp);
You can then refer to the object and the method from your HTML page:
<a href="" onclick="app.exit()">Click here to exit application</a>
When a user clicks the link the application is closed.
Note that in the above example, the application holds a reference
to the JavaApplication
instance. This is required for the callback
from JavaScript to execute the desired method.
In the following example, the application does not hold a reference to the Java object:
JSObject window = (JSObject) webEngine.executeScript("window");
window.setMember("app", new JavaApplication());
In this case, since the property value is a local object, "new JavaApplication()"
,
the value may be garbage collected in next GC cycle.
When a user clicks the link, it does not guarantee to execute the callback method exit
.
If there are multiple Java methods with the given name, then the engine selects one matching the number of parameters in the call. (Varargs are not handled.) An unspecified one is chosen if there are multiple ones with the correct number of parameters.
You can pick a specific overloaded method by listing the
parameter types in an "extended method name", which has the
form "method_name(param_type1,...,param_typen)"
. Typically you'd write the JavaScript expression:
receiver["method_name(param_type1,...,param_typeN)"](arg1,...,argN)
The Java class and method must both be declared public.
Deploying an Application as a Module
If any Java class passed to JavaScript is in a named module, then it must
be reflectively accessible to the javafx.web
module.
A class is reflectively accessible if the module
opens
the containing package to at
least the javafx.web
module.
Otherwise, the method will not be called, and no error or
warning will be produced.
For example, if com.foo.MyClass
is in the foo.app
module,
the module-info.java
might
look like this:
module foo.app {
opens com.foo to javafx.web;
}
Alternatively, a class is reflectively accessible if the module
exports
the containing package
unconditionally.
Starting with JavaFX 14, HTTP/2 support has been added to WebEngine.
This is achieved by using HttpClient
instead of URLConnection
. HTTP/2 is activated
by default when JavaFX 14 (or later) is used with JDK 12 (or later).
Threading
WebEngine
objects must be created and accessed solely from the
JavaFX Application thread. This rule also applies to any DOM and JavaScript
objects obtained from the WebEngine
object.
- Since:
- JavaFX 2.0
-
Property Summary
TypePropertyDescriptionfinal ObjectProperty<Callback<String,
Boolean>> JavaScriptconfirm
handler property.final ObjectProperty<Callback<PopupFeatures,
WebEngine>> JavaScript popup handler property.final ReadOnlyObjectProperty<Document>
Document object for the current Web page.final BooleanProperty
Specifies whether JavaScript execution is enabled.final ReadOnlyStringProperty
URL of the current Web page.final ObjectProperty<EventHandler<WebEvent<String>>>
JavaScriptalert
handler property.final ObjectProperty<EventHandler<WebErrorEvent>>
The event handler called when an error occurs.final ObjectProperty<EventHandler<WebEvent<Rectangle2D>>>
JavaScript window resize handler property.final ObjectProperty<EventHandler<WebEvent<String>>>
JavaScript status handler property.final ObjectProperty<EventHandler<WebEvent<Boolean>>>
JavaScript window visibility handler property.final ObjectProperty<Callback<PromptData,
String>> JavaScriptprompt
handler property.final ReadOnlyStringProperty
Title of the current Web page.final StringProperty
Specifies user agent ID string.final ObjectProperty<File>
Specifies the directory to be used by thisWebEngine
to store local user data.final StringProperty
Location of the user stylesheet as a string URL. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal ObjectProperty<Callback<String,
Boolean>> JavaScriptconfirm
handler property.final ObjectProperty<Callback<PopupFeatures,
WebEngine>> JavaScript popup handler property.final ReadOnlyObjectProperty<Document>
Document object for the current Web page.executeScript
(String script) Executes a script in the context of the current page.Gets the value of theconfirmHandler
property.final Callback<PopupFeatures,
WebEngine> Gets the value of thecreatePopupHandler
property.final Document
Gets the value of thedocument
property.Returns the session history object.Returns aWorker
object that can be used to track loading progress.final String
Gets the value of thelocation
property.final EventHandler<WebEvent<String>>
Gets the value of theonAlert
property.final EventHandler<WebErrorEvent>
Gets the value of theonError
property.final EventHandler<WebEvent<Rectangle2D>>
Gets the value of theonResized
property.final EventHandler<WebEvent<String>>
Gets the value of theonStatusChanged
property.final EventHandler<WebEvent<Boolean>>
Gets the value of theonVisibilityChanged
property.final Callback<PromptData,
String> Gets the value of thepromptHandler
property.final String
getTitle()
Gets the value of thetitle
property.final String
Gets the value of theuserAgent
property.final File
Gets the value of theuserDataDirectory
property.final String
Gets the value of theuserStyleSheetLocation
property.final boolean
Gets the value of thejavaScriptEnabled
property.final BooleanProperty
Specifies whether JavaScript execution is enabled.void
Loads a Web page into this engine.void
loadContent
(String content) Loads the given HTML content directly.void
loadContent
(String content, String contentType) Loads the given content directly.final ReadOnlyStringProperty
URL of the current Web page.final ObjectProperty<EventHandler<WebEvent<String>>>
JavaScriptalert
handler property.final ObjectProperty<EventHandler<WebErrorEvent>>
The event handler called when an error occurs.final ObjectProperty<EventHandler<WebEvent<Rectangle2D>>>
JavaScript window resize handler property.final ObjectProperty<EventHandler<WebEvent<String>>>
JavaScript status handler property.final ObjectProperty<EventHandler<WebEvent<Boolean>>>
JavaScript window visibility handler property.void
print
(PrinterJob job) Prints the current Web page using the given printer job.final ObjectProperty<Callback<PromptData,
String>> JavaScriptprompt
handler property.void
reload()
Reloads the current page, whether loaded from URL or directly from a String in one of theloadContent
methods.final void
setConfirmHandler
(Callback<String, Boolean> handler) Sets the value of theconfirmHandler
property.final void
setCreatePopupHandler
(Callback<PopupFeatures, WebEngine> handler) Sets the value of thecreatePopupHandler
property.final void
setJavaScriptEnabled
(boolean value) Sets the value of thejavaScriptEnabled
property.final void
setOnAlert
(EventHandler<WebEvent<String>> handler) Sets the value of theonAlert
property.final void
setOnError
(EventHandler<WebErrorEvent> handler) Sets the value of theonError
property.final void
setOnResized
(EventHandler<WebEvent<Rectangle2D>> handler) Sets the value of theonResized
property.final void
setOnStatusChanged
(EventHandler<WebEvent<String>> handler) Sets the value of theonStatusChanged
property.final void
setOnVisibilityChanged
(EventHandler<WebEvent<Boolean>> handler) Sets the value of theonVisibilityChanged
property.final void
setPromptHandler
(Callback<PromptData, String> handler) Sets the value of thepromptHandler
property.final void
setUserAgent
(String value) Sets the value of theuserAgent
property.final void
setUserDataDirectory
(File value) Sets the value of theuserDataDirectory
property.final void
setUserStyleSheetLocation
(String value) Sets the value of theuserStyleSheetLocation
property.final ReadOnlyStringProperty
Title of the current Web page.final StringProperty
Specifies user agent ID string.final ObjectProperty<File>
Specifies the directory to be used by thisWebEngine
to store local user data.final StringProperty
Location of the user stylesheet as a string URL.
-
Property Details
-
document
Document object for the current Web page. The value isnull
if the Web page failed to load.- See Also:
-
location
URL of the current Web page. If the current page has no URL, the value is an empty String.- See Also:
-
title
Title of the current Web page. If the current page has no title, the value isnull
. This property will be updated asynchronously some time after the page is loaded. Applications should not rely on any particular timing, but should listen for changes to this property, or bind to it, to know when it has been updated.- See Also:
-
javaScriptEnabled
Specifies whether JavaScript execution is enabled.- Default value:
- true
- Since:
- JavaFX 2.2
- See Also:
-
userStyleSheetLocation
Location of the user stylesheet as a string URL.This should be a local URL, i.e. either
'data:'
,'file:'
,'jar:'
, or'jrt:'
. Remote URLs are not allowed for security reasons.- Default value:
- null
- Since:
- JavaFX 2.2
- See Also:
-
userDataDirectory
Specifies the directory to be used by thisWebEngine
to store local user data.If the value of this property is not
null
, theWebEngine
will attempt to store local user data in the respective directory. If the value of this property isnull
, theWebEngine
will attempt to store local user data in an automatically selected system-dependent user- and application-specific directory.When a
WebEngine
is about to start loading a web page or executing a script for the first time, it checks whether it can actually use the directory specified by this property. If the check fails for some reason, theWebEngine
invokes theWebEngine.onError
event handler, if any, with aWebErrorEvent
describing the reason. If the invoked event handler modifies theuserDataDirectory
property, theWebEngine
retries with the new value as soon as the handler returns. If the handler does not modify theuserDataDirectory
property (which is the default), theWebEngine
continues without local user data.Once the
WebEngine
has started loading a web page or executing a script, changes made to this property have no effect on where theWebEngine
stores or will store local user data.Currently, the directory specified by this property is used only to store the data that backs the
window.localStorage
objects. In the future, more types of data can be added.- Default value:
null
- Since:
- JavaFX 8.0
- See Also:
-
userAgent
Specifies user agent ID string. This string is the value of theUser-Agent
HTTP header.- Default value:
- system dependent
- Since:
- JavaFX 8.0
- See Also:
-
onAlert
JavaScriptalert
handler property. This handler is invoked when a script running on the Web page calls thealert
function. -
onStatusChanged
JavaScript status handler property. This handler is invoked when a script running on the Web page setswindow.status
property. -
onResized
JavaScript window resize handler property. This handler is invoked when a script running on the Web page moves or resizes thewindow
object. -
onVisibilityChanged
JavaScript window visibility handler property. This handler is invoked when a script running on the Web page changes visibility of thewindow
object. -
createPopupHandler
JavaScript popup handler property. This handler is invoked when a script running on the Web page requests a popup to be created.To satisfy this request a handler may create a new
WebEngine
, attach a visibility handler and optionally a resize handler, and return the newly created engine. To block the popup, a handler should returnnull
.By default, a popup handler is installed that opens popups in this
WebEngine
. -
confirmHandler
JavaScriptconfirm
handler property. This handler is invoked when a script running on the Web page calls theconfirm
function.An implementation may display a dialog box with Yes and No options, and return the user's choice.
-
promptHandler
JavaScriptprompt
handler property. This handler is invoked when a script running on the Web page calls theprompt
function.An implementation may display a dialog box with an text field, and return the user's input.
-
onError
The event handler called when an error occurs.- Default value:
null
- Since:
- JavaFX 8.0
- See Also:
-
-
Constructor Details
-
WebEngine
public WebEngine()Creates a new engine. -
WebEngine
Creates a new engine and loads a Web page into it.- Parameters:
url
- the URL of the web page to load
-
-
Method Details
-
getLoadWorker
Returns aWorker
object that can be used to track loading progress.- Returns:
- the
Worker
object
-
getDocument
Gets the value of thedocument
property.- Property description:
- Document object for the current Web page. The value is
null
if the Web page failed to load. - Returns:
- the value of the
document
property - See Also:
-
documentProperty
Document object for the current Web page. The value isnull
if the Web page failed to load.- Returns:
- the document property
- See Also:
-
getLocation
Gets the value of thelocation
property.- Property description:
- URL of the current Web page. If the current page has no URL, the value is an empty String.
- Returns:
- the value of the
location
property - See Also:
-
locationProperty
URL of the current Web page. If the current page has no URL, the value is an empty String.- Returns:
- the location property
- See Also:
-
getTitle
Gets the value of thetitle
property.- Property description:
- Title of the current Web page. If the current page has no title,
the value is
null
. This property will be updated asynchronously some time after the page is loaded. Applications should not rely on any particular timing, but should listen for changes to this property, or bind to it, to know when it has been updated. - Returns:
- the value of the
title
property - See Also:
-
titleProperty
Title of the current Web page. If the current page has no title, the value isnull
. This property will be updated asynchronously some time after the page is loaded. Applications should not rely on any particular timing, but should listen for changes to this property, or bind to it, to know when it has been updated.- Returns:
- the title property
- See Also:
-
setJavaScriptEnabled
public final void setJavaScriptEnabled(boolean value) Sets the value of thejavaScriptEnabled
property.- Property description:
- Specifies whether JavaScript execution is enabled.
- Default value:
- true
- Parameters:
value
- the value for thejavaScriptEnabled
property- Since:
- JavaFX 2.2
- See Also:
-
isJavaScriptEnabled
public final boolean isJavaScriptEnabled()Gets the value of thejavaScriptEnabled
property.- Property description:
- Specifies whether JavaScript execution is enabled.
- Default value:
- true
- Returns:
- the value of the
javaScriptEnabled
property - Since:
- JavaFX 2.2
- See Also:
-
javaScriptEnabledProperty
Specifies whether JavaScript execution is enabled.- Default value:
- true
- Returns:
- the
javaScriptEnabled
property - Since:
- JavaFX 2.2
- See Also:
-
setUserStyleSheetLocation
Sets the value of theuserStyleSheetLocation
property.- Property description:
- Location of the user stylesheet as a string URL.
This should be a local URL, i.e. either
'data:'
,'file:'
,'jar:'
, or'jrt:'
. Remote URLs are not allowed for security reasons. - Default value:
- null
- Parameters:
value
- the value for theuserStyleSheetLocation
property- Since:
- JavaFX 2.2
- See Also:
-
getUserStyleSheetLocation
Gets the value of theuserStyleSheetLocation
property.- Property description:
- Location of the user stylesheet as a string URL.
This should be a local URL, i.e. either
'data:'
,'file:'
,'jar:'
, or'jrt:'
. Remote URLs are not allowed for security reasons. - Default value:
- null
- Returns:
- the value of the
userStyleSheetLocation
property - Since:
- JavaFX 2.2
- See Also:
-
userStyleSheetLocationProperty
Location of the user stylesheet as a string URL.This should be a local URL, i.e. either
'data:'
,'file:'
,'jar:'
, or'jrt:'
. Remote URLs are not allowed for security reasons.- Default value:
- null
- Returns:
- the
userStyleSheetLocation
property - Since:
- JavaFX 2.2
- See Also:
-
getUserDataDirectory
Gets the value of theuserDataDirectory
property.- Property description:
- Specifies the directory to be used by this
WebEngine
to store local user data.If the value of this property is not
null
, theWebEngine
will attempt to store local user data in the respective directory. If the value of this property isnull
, theWebEngine
will attempt to store local user data in an automatically selected system-dependent user- and application-specific directory.When a
WebEngine
is about to start loading a web page or executing a script for the first time, it checks whether it can actually use the directory specified by this property. If the check fails for some reason, theWebEngine
invokes theWebEngine.onError
event handler, if any, with aWebErrorEvent
describing the reason. If the invoked event handler modifies theuserDataDirectory
property, theWebEngine
retries with the new value as soon as the handler returns. If the handler does not modify theuserDataDirectory
property (which is the default), theWebEngine
continues without local user data.Once the
WebEngine
has started loading a web page or executing a script, changes made to this property have no effect on where theWebEngine
stores or will store local user data.Currently, the directory specified by this property is used only to store the data that backs the
window.localStorage
objects. In the future, more types of data can be added. - Default value:
null
- Returns:
- the value of the
userDataDirectory
property - Since:
- JavaFX 8.0
- See Also:
-
setUserDataDirectory
Sets the value of theuserDataDirectory
property.- Property description:
- Specifies the directory to be used by this
WebEngine
to store local user data.If the value of this property is not
null
, theWebEngine
will attempt to store local user data in the respective directory. If the value of this property isnull
, theWebEngine
will attempt to store local user data in an automatically selected system-dependent user- and application-specific directory.When a
WebEngine
is about to start loading a web page or executing a script for the first time, it checks whether it can actually use the directory specified by this property. If the check fails for some reason, theWebEngine
invokes theWebEngine.onError
event handler, if any, with aWebErrorEvent
describing the reason. If the invoked event handler modifies theuserDataDirectory
property, theWebEngine
retries with the new value as soon as the handler returns. If the handler does not modify theuserDataDirectory
property (which is the default), theWebEngine
continues without local user data.Once the
WebEngine
has started loading a web page or executing a script, changes made to this property have no effect on where theWebEngine
stores or will store local user data.Currently, the directory specified by this property is used only to store the data that backs the
window.localStorage
objects. In the future, more types of data can be added. - Default value:
null
- Parameters:
value
- the value for theuserDataDirectory
property- Since:
- JavaFX 8.0
- See Also:
-
userDataDirectoryProperty
Specifies the directory to be used by thisWebEngine
to store local user data.If the value of this property is not
null
, theWebEngine
will attempt to store local user data in the respective directory. If the value of this property isnull
, theWebEngine
will attempt to store local user data in an automatically selected system-dependent user- and application-specific directory.When a
WebEngine
is about to start loading a web page or executing a script for the first time, it checks whether it can actually use the directory specified by this property. If the check fails for some reason, theWebEngine
invokes theWebEngine.onError
event handler, if any, with aWebErrorEvent
describing the reason. If the invoked event handler modifies theuserDataDirectory
property, theWebEngine
retries with the new value as soon as the handler returns. If the handler does not modify theuserDataDirectory
property (which is the default), theWebEngine
continues without local user data.Once the
WebEngine
has started loading a web page or executing a script, changes made to this property have no effect on where theWebEngine
stores or will store local user data.Currently, the directory specified by this property is used only to store the data that backs the
window.localStorage
objects. In the future, more types of data can be added.- Default value:
null
- Returns:
- the
userDataDirectory
property - Since:
- JavaFX 8.0
- See Also:
-
setUserAgent
Sets the value of theuserAgent
property.- Property description:
- Specifies user agent ID string. This string is the value of the
User-Agent
HTTP header. - Default value:
- system dependent
- Parameters:
value
- the value for theuserAgent
property- Since:
- JavaFX 8.0
- See Also:
-
getUserAgent
Gets the value of theuserAgent
property.- Property description:
- Specifies user agent ID string. This string is the value of the
User-Agent
HTTP header. - Default value:
- system dependent
- Returns:
- the value of the
userAgent
property - Since:
- JavaFX 8.0
- See Also:
-
userAgentProperty
Specifies user agent ID string. This string is the value of theUser-Agent
HTTP header.- Default value:
- system dependent
- Returns:
- the
userAgent
property - Since:
- JavaFX 8.0
- See Also:
-
getOnAlert
Gets the value of theonAlert
property.- Property description:
- JavaScript
alert
handler property. This handler is invoked when a script running on the Web page calls thealert
function. - Returns:
- the value of the
onAlert
property - See Also:
-
setOnAlert
Sets the value of theonAlert
property.- Property description:
- JavaScript
alert
handler property. This handler is invoked when a script running on the Web page calls thealert
function. - Parameters:
handler
- the value for theonAlert
property- See Also:
-
onAlertProperty
JavaScriptalert
handler property. This handler is invoked when a script running on the Web page calls thealert
function.- Returns:
- the onAlert property
- See Also:
-
getOnStatusChanged
Gets the value of theonStatusChanged
property.- Property description:
- JavaScript status handler property. This handler is invoked when
a script running on the Web page sets
window.status
property. - Returns:
- the value of the
onStatusChanged
property - See Also:
-
setOnStatusChanged
Sets the value of theonStatusChanged
property.- Property description:
- JavaScript status handler property. This handler is invoked when
a script running on the Web page sets
window.status
property. - Parameters:
handler
- the value for theonStatusChanged
property- See Also:
-
onStatusChangedProperty
JavaScript status handler property. This handler is invoked when a script running on the Web page setswindow.status
property.- Returns:
- the onStatusChanged property
- See Also:
-
getOnResized
Gets the value of theonResized
property.- Property description:
- JavaScript window resize handler property. This handler is invoked
when a script running on the Web page moves or resizes the
window
object. - Returns:
- the value of the
onResized
property - See Also:
-
setOnResized
Sets the value of theonResized
property.- Property description:
- JavaScript window resize handler property. This handler is invoked
when a script running on the Web page moves or resizes the
window
object. - Parameters:
handler
- the value for theonResized
property- See Also:
-
onResizedProperty
JavaScript window resize handler property. This handler is invoked when a script running on the Web page moves or resizes thewindow
object.- Returns:
- the onResized property
- See Also:
-
getOnVisibilityChanged
Gets the value of theonVisibilityChanged
property.- Property description:
- JavaScript window visibility handler property. This handler is invoked
when a script running on the Web page changes visibility of the
window
object. - Returns:
- the value of the
onVisibilityChanged
property - See Also:
-
setOnVisibilityChanged
Sets the value of theonVisibilityChanged
property.- Property description:
- JavaScript window visibility handler property. This handler is invoked
when a script running on the Web page changes visibility of the
window
object. - Parameters:
handler
- the value for theonVisibilityChanged
property- See Also:
-
onVisibilityChangedProperty
JavaScript window visibility handler property. This handler is invoked when a script running on the Web page changes visibility of thewindow
object.- Returns:
- the onVisibilityChanged property
- See Also:
-
getCreatePopupHandler
Gets the value of thecreatePopupHandler
property.- Property description:
- JavaScript popup handler property. This handler is invoked when a script
running on the Web page requests a popup to be created.
To satisfy this request a handler may create a new
WebEngine
, attach a visibility handler and optionally a resize handler, and return the newly created engine. To block the popup, a handler should returnnull
.By default, a popup handler is installed that opens popups in this
WebEngine
. - Returns:
- the value of the
createPopupHandler
property - See Also:
-
setCreatePopupHandler
Sets the value of thecreatePopupHandler
property.- Property description:
- JavaScript popup handler property. This handler is invoked when a script
running on the Web page requests a popup to be created.
To satisfy this request a handler may create a new
WebEngine
, attach a visibility handler and optionally a resize handler, and return the newly created engine. To block the popup, a handler should returnnull
.By default, a popup handler is installed that opens popups in this
WebEngine
. - Parameters:
handler
- the value for thecreatePopupHandler
property- See Also:
-
createPopupHandlerProperty
JavaScript popup handler property. This handler is invoked when a script running on the Web page requests a popup to be created.To satisfy this request a handler may create a new
WebEngine
, attach a visibility handler and optionally a resize handler, and return the newly created engine. To block the popup, a handler should returnnull
.By default, a popup handler is installed that opens popups in this
WebEngine
.- Returns:
- the createPopupHandler property
- See Also:
-
getConfirmHandler
Gets the value of theconfirmHandler
property.- Property description:
- JavaScript
confirm
handler property. This handler is invoked when a script running on the Web page calls theconfirm
function.An implementation may display a dialog box with Yes and No options, and return the user's choice.
- Returns:
- the value of the
confirmHandler
property - See Also:
-
setConfirmHandler
Sets the value of theconfirmHandler
property.- Property description:
- JavaScript
confirm
handler property. This handler is invoked when a script running on the Web page calls theconfirm
function.An implementation may display a dialog box with Yes and No options, and return the user's choice.
- Parameters:
handler
- the value for theconfirmHandler
property- See Also:
-
confirmHandlerProperty
JavaScriptconfirm
handler property. This handler is invoked when a script running on the Web page calls theconfirm
function.An implementation may display a dialog box with Yes and No options, and return the user's choice.
- Returns:
- the confirmHandler property
- See Also:
-
getPromptHandler
Gets the value of thepromptHandler
property.- Property description:
- JavaScript
prompt
handler property. This handler is invoked when a script running on the Web page calls theprompt
function.An implementation may display a dialog box with an text field, and return the user's input.
- Returns:
- the value of the
promptHandler
property - See Also:
-
setPromptHandler
Sets the value of thepromptHandler
property.- Property description:
- JavaScript
prompt
handler property. This handler is invoked when a script running on the Web page calls theprompt
function.An implementation may display a dialog box with an text field, and return the user's input.
- Parameters:
handler
- the value for thepromptHandler
property- See Also:
-
promptHandlerProperty
JavaScriptprompt
handler property. This handler is invoked when a script running on the Web page calls theprompt
function.An implementation may display a dialog box with an text field, and return the user's input.
- Returns:
- the promptHandler property
- See Also:
-
getOnError
Gets the value of theonError
property.- Property description:
- The event handler called when an error occurs.
- Default value:
null
- Returns:
- the value of the
onError
property - Since:
- JavaFX 8.0
- See Also:
-
setOnError
Sets the value of theonError
property.- Property description:
- The event handler called when an error occurs.
- Default value:
null
- Parameters:
handler
- the value for theonError
property- Since:
- JavaFX 8.0
- See Also:
-
onErrorProperty
The event handler called when an error occurs.- Default value:
null
- Returns:
- the
onError
property - Since:
- JavaFX 8.0
- See Also:
-
load
Loads a Web page into this engine. This method starts asynchronous loading and returns immediately.- Parameters:
url
- URL of the web page to load
-
loadContent
Loads the given HTML content directly. This method is useful when you have an HTML String composed in memory, or loaded from some system which cannot be reached via a URL (for example, the HTML text may have come from a database). As withload(String)
, this method is asynchronous.- Parameters:
content
- the HTML content to load
-
loadContent
Loads the given content directly. This method is useful when you have content composed in memory, or loaded from some system which cannot be reached via a URL (for example, the SVG text may have come from a database). As withload(String)
, this method is asynchronous. This method also allows you to specify the content type of the string being loaded, and so may optionally support other types besides just HTML.- Parameters:
content
- the HTML content to loadcontentType
- the type of content to load
-
reload
public void reload()Reloads the current page, whether loaded from URL or directly from a String in one of theloadContent
methods. -
getHistory
Returns the session history object.- Returns:
- history object
- Since:
- JavaFX 2.2
-
executeScript
Executes a script in the context of the current page.- Parameters:
script
- the script- Returns:
- execution result, converted to a Java object using the following
rules:
- JavaScript Int32 is converted to
java.lang.Integer
- Other JavaScript numbers to
java.lang.Double
- JavaScript string to
java.lang.String
- JavaScript boolean to
java.lang.Boolean
- JavaScript
null
tonull
- Most JavaScript objects get wrapped as
netscape.javascript.JSObject
- JavaScript JSNode objects get mapped to instances of
netscape.javascript.JSObject
, that also implementorg.w3c.dom.Node
- A special case is the JavaScript class
JavaRuntimeObject
which is used to wrap a Java object as a JavaScript value - in this case we just extract the original Java value.
- JavaScript Int32 is converted to
-
print
Prints the current Web page using the given printer job.This method does not modify the state of the job, nor does it call
PrinterJob.endJob()
, so the job may be safely reused afterwards.- Parameters:
job
- printer job used for printing- Since:
- JavaFX 8.0
-