Call Javascript from a Java applet - Real‘s Java How-to
来源:百度文库 编辑:神马文学网 时间:2024/04/25 16:57:44
BigIndex
Call Javascript from a Java applet
Netscape only, using the javascript: protocol
A Javascript function is called from Java by using the showDocument method.A URL is needed with "javascript:" as the protocol.
[Java applet]
import java.applet.*;import java.net.*;public class InJava4 extends Applet{public void init(){String msg = "Hello from Java (using javascript alert)";try {getAppletContext().showDocument(new URL("javascript:doAlert(\"" + msg +"\")"));}catch (MalformedURLException me) { }}}
[Javascript and HTML]
Try ithere
Netscape and IE ok, using the netscape.javascript.JSObject package
How to compile when using the netscape.javascript.JSObject package ?
For Java 1.4.2 and later: add plugin.jar to your classpath.It can be found in the lib directory of your JRE installation, e.g.C:\Program Files\Java\jre1.5.0\lib\plugin.jar
For Java 1.4.0/1.4.1: use jaws.jar (same directory).
In the following example, you type in the TextField a Javascriptfunction and press the button toexecute the function. For example, try alert(‘Hello from JAVA‘).Or you can execute functiondefined on the same page as the Applet. The Applet must contains theMAYSCRIPT parameter to be able to use JSObject.
Netscape and IE Ok.
import java.applet.*;import java.awt.*;import java.awt.event.*;import netscape.javascript.*;public class InJava5 extends Applet implements ActionListener {Button b;TextField t;public void init() {t = new TextField(20);add(t);b = new Button("execute Javascript");add(b);b.addActionListener(this);}public void actionPerformed(ActionEvent ae) {if (ae.getSource() == b) {JSObject win = (JSObject) JSObject.getWindow(this);win.eval(t.getText());}}}
Try ithere
Another way is to use the Reflection API. That way you don‘t need tomodify your CLASSPATH for compilation or even import thenetscape.jsobject package.
// posted by C Werner on the realhowto listimport java.lang.reflect.*;...// Somewhere in the applet class ......String jscmd = "window.close()"; /* JavaScript command */String jsresult = null;boolean success = false;try {Method getw = null, eval = null;Object jswin = null;Class c =Class.forName("netscape.javascript.JSObject"); /* does it in IE too */Method ms[] = c.getMethods();for (int i = 0; i < ms.length; i++) {if (ms[i].getName().compareTo("getWindow") == 0)getw = ms[i];else if (ms[i].getName().compareTo("eval") == 0)eval = ms[i];}}Object a[] = new Object[1];a[0] = this; /* this is the applet */jswin = getw.invoke(c, a); /* this yields the JSObject */a[0] = jscmd;Object result = eval.invoke(jswin, a);if (result instanceof String)jsresult = (String) result;elsejsresult = result.toString();success = true;}catch (InvocationTargetException ite) {jsresult = "" + ite.getTargetException();}catch (Exception e) {jsresult = "" + e;}if (success)System.out.println("eval succeeded, result is " + jsresult);elseSystem.out.println("eval failed with error " + jsresult);
If you find this article useful, consider making a small donation
to show your support for this Web site and its content.
Written and compiled by Réal Gagnon ©1998-2005
[ home ]
Call Javascript from a Java applet - Real‘s Java How-to
Document a package using Javadoc - Real's Java How-to
ChinaUnix.net - Java、Java Applet与 JavaScript间的通信
Java Technology Forums - How to Java SNMP Programming
Applet Security (Java Foundation Classes)
JAVA call VC DLL(一)
How To Create A RSS Feed From Any Web Page
How to remove a dead server from DPM 2010
警惕Java,迎来JavaScript
Applet Caching and Installation in Java Plug
对Java Applet和Java Web Start进行数字签名
java how to program(third edition)——基于对象的编程
在Applet中实现数字签名 - Java - 核心技术 - SwingAwtApplet - linux宝库
Java Applet在IE中不能运行的解决方法
解决linux下java程序(例如applet)中文乱码问题
How to power leveling a char in Diablo II from 1-85level?
How to Get a Six Figure Book Deal From Your B...
java
解决Java Applet和Java Script通信问题 - complayer的专栏 - CSDNBlog
How to find a file?
How To Compile A Kernel
How to Start a Startup
how to read a paper
How to read a book!!!