docs.oracle.com
Documentation

The Java™ Tutorials
Hide TOC
Home Page > Deployment > Java Applets
« Previous • Trail • Next »
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.
See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.
See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.
Invoking JavaScript Code From an Applet
Java applets can invoke JavaScript functions present in the same web page as the applet. The LiveConnect Specification describes details about how JavaScript code communicates with Java code.
The netscape.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 AppletPage.html has JavaScript functions to retrieve age, address, and phone numbers. There is also a variable called userName 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 id="summary"/> // this HTML element contains // the summary <!-- ... --> </body>
Next, consider an applet class called DataSummaryApplet​. The DataSummaryApplet class performs the following operations.
This applet first needs to retrieve a reference to JSObject as follows:
... JSObject window = JSObject.getWindow(this); ...
Put the preceding statement in a try ...catch.. block to handle netscape.javascript.JSException​.
Now that the applet has a reference to JSObject, it can invoke the relevant JavaScript functions by using the eval and call methods of JSObject.
package javatojs; import java.applet.Applet; import netscape.javascript.*; // add plugin.jar to classpath during compilation public 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 the netscape.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 AppletPage.html in a browser to view the Data Summary applet .
Note:  If you don't see the applet running, you need to install at least the Java SE Development Kit (JDK) 6 update 10 release.
Note:  If you don't see the example running, you might need to enable the JavaScript interpreter in your browser so that the Deployment Toolkit script can function properly.
Download source code for the Invoking JavaScript Code From Applet example to experiment further.
« PreviousTrailNext »
About Oracle | Contact Us | Legal Notices | Terms of Use | Your Privacy Rights |
Préférences en matière de cookies | Ad Choices
Copyright © 1995, 2021 Oracle and/or its affiliates. All rights reserved.
Java AppletsGetting Started With AppletsDefining an Applet SubclassMethods for MilestonesLife Cycle of an AppletApplet's Execution EnvironmentDeveloping an AppletDeploying an AppletDeploying With the Applet TagDoing More With AppletsFinding and Loading Data FilesDefining and Using Applet ParametersDisplaying Short Status StringsDisplaying Documents in the BrowserInvoking Applet Methods From JavaScript CodeHandling Initialization Status With Event Handlers Manipulating DOM of Applet's Web PageWriting Diagnostics to Standard Output and Error StreamsDeveloping Draggable AppletsCommunicating With Other AppletsWorking With a Server-Side Application Network Client Applet ExampleWhat Applets Can and Cannot DoSolving Common Applet ProblemsQuestions and Exercises