The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.
SeeDev.java for updated tutorials taking advantage of the latest releases.
SeeJava Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.
SeeJDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.
Java applets can invoke JavaScript functions present in the same web page as the applet. TheLiveConnect Specification describes details about how JavaScript code communicates with Java code.
Thenetscape.javascript.JSObject class enables Java applets to retrieve a reference to JavaScript objects and interact with the web page. The Data Summary applet described next invokes JavaScript code to retrieve information from the web page and writes a data summary back to the web page.
Assume you have a web page with a few JavaScript functions. The example has JavaScript functions to retrieve age, address, and phone numbers. There is also a variable calledAppletPage.htmluserName which has no value at the outset.
<head><title>Data Summary Applet Page - Java to JavaScript LiveConnect</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/><script language="javascript"> var userName = ""; // returns number function getAge() { return 25; } // returns an object function address() { this.street = "1 Example Lane"; this.city = "Santa Clara"; this.state = "CA"; } // returns an array function getPhoneNums() { return ["408-555-0100", "408-555-0102"]; } function writeSummary(summary) { summaryElem = document.getElementById("summary"); summaryElem.innerHTML = summary; } </script> <!-- ... --> </head><body> <script src = "https://www.java.com/js/deployJava.js"></script> <script> <!-- ... --> deployJava.runApplet(attributes, parameters, '1.6'); </script> <!-- ... --> <p/> // this HTML element contains // the summary <!-- ... --></body>Next, consider an applet class calledDataSummaryApplet. TheDataSummaryApplet class performs the following operations.
JSObject'ssetMember method to set theuserName variable to "John Doe".writeSummary JavaScript function to write the summary back to the web page.This applet first needs to retrieve a reference toJSObject as follows:
...JSObject window = JSObject.getWindow(this);...
Put the preceding statement in a try ...catch.. block to handlenetscape.javascript.JSException.
Now that the applet has a reference toJSObject, it can invoke the relevant JavaScript functions by using theeval andcall methods ofJSObject.
package javatojs;import java.applet.Applet;import netscape.javascript.*; // add plugin.jar to classpath during compilationpublic class DataSummaryApplet extends Applet { public void start() { try { JSObject window = JSObject.getWindow(this); String userName = "John Doe"; // set JavaScript variable window.setMember("userName", userName); // invoke JavaScript function Number age = (Number) window.eval("getAge()"); // get a JavaScript object and retrieve its contents JSObject address = (JSObject) window.eval("new address();"); String addressStr = (String) address.getMember("street") + ", " + (String) address.getMember("city") + ", " + (String) address.getMember("state"); // get an array from JavaScript and retrieve its contents JSObject phoneNums = (JSObject) window.eval("getPhoneNums()"); String phoneNumStr = (String) phoneNums.getSlot(0) + ", " + (String) phoneNums.getSlot(1); // dynamically change HTML in page; write data summary String summary = userName + " : " + age + " : " + addressStr + " : " + phoneNumStr; window.call("writeSummary", new Object[] {summary}) ; } catch (JSException jse) { jse.printStackTrace(); } }}To compile Java code that has a reference to classes in thenetscape.javascript package, include<your JDK path>/jre/lib/plugin.jar in your classpath. At runtime, the Java Plug-in software automatically makes these classes available to applets.
The Data Summary applet displays the following result on the web page:
Result of applet's Java calls to JavaScript on this page John Doe : 25 : 1 Example Lane, Santa Clara, CA : 408-555-0100, 408-555-0102
Open in a browser to view the Data Summary applet .AppletPage.html
Download source code for theInvoking JavaScript Code From Applet example to experiment further.
About Oracle |Contact Us |Legal Notices |Terms of Use |Your Privacy Rights
Copyright © 1995, 2024 Oracle and/or its affiliates. All rights reserved.