当前位置: 技术问答>java相关
APPLET与页面交互问题,只要是指导性意见就给分。
来源: 互联网 发布时间:2015-10-29
本文导语: 在JSP中的一个APPLET执行一个动作,怎样才能将结果信息动态地在本页面中生成? 一个简单的类比,比如在APPLET中按下一个按钮,然后将APPLET中一个字符串变量马上在APPLET所在的页面(不是Applet中)中显示出来。 大家...
在JSP中的一个APPLET执行一个动作,怎样才能将结果信息动态地在本页面中生成?
一个简单的类比,比如在APPLET中按下一个按钮,然后将APPLET中一个字符串变量马上在APPLET所在的页面(不是Applet中)中显示出来。
大家指点下此方法的可行性以及解决方案。
一个简单的类比,比如在APPLET中按下一个按钮,然后将APPLET中一个字符串变量马上在APPLET所在的页面(不是Applet中)中显示出来。
大家指点下此方法的可行性以及解决方案。
|
使用netscape.javascript.JSObject类。JSObject类提供了一个 eval()方法取得以字符形式保存的JavaScript代码。因为IE4.0中带有netscape.javascript.*包,所以能够直接在IE中使用netscape.javascript.JSObject类来从Applet中调用JavaScript。下面我给出了一个调用JavaScript的Applet小程序,能够在Netscape3.0 /4.0和IE4.0下运行。
代码1:
import java.awt.*;
import java.applet.*;
import java.net.*;
public final class JScript extends Applet {
Button button;
public void init() {
button = new Button("欢迎您使用本程序,它只是一个小程序用来验证从Java中调用JavaScript!");
add(button);
}
public boolean action(Event event, Object arg) {
if(event.target == button) {
URL url;
Class jsObjectClass;
// 为了简化程序,我们将不对浏览器进行检查,
// 直接使用 JSObject 类
try {
jsObjectClass = Class.forName("netscape.javascript.JSObject");
} catch(ClassNotFoundException e) {
jsObjectClass = null;
}
if(jsObjectClass != null) {
netscape.javascript.JSObject window;
window = netscape.javascript.JSObject.getWindow(this);
window = (netscape.javascript.JSObject)window.getMember("top");
window.eval("test();");
} else {
try {
url = new URL("javascript:top.test();");
getAppletContext().showDocument(url);
} catch(MalformedURLException e) {
button.setLabel("不支持JavaScript调用!");
}
}
}
return true;
}
}
这样没问题了吧!!!
代码1:
import java.awt.*;
import java.applet.*;
import java.net.*;
public final class JScript extends Applet {
Button button;
public void init() {
button = new Button("欢迎您使用本程序,它只是一个小程序用来验证从Java中调用JavaScript!");
add(button);
}
public boolean action(Event event, Object arg) {
if(event.target == button) {
URL url;
Class jsObjectClass;
// 为了简化程序,我们将不对浏览器进行检查,
// 直接使用 JSObject 类
try {
jsObjectClass = Class.forName("netscape.javascript.JSObject");
} catch(ClassNotFoundException e) {
jsObjectClass = null;
}
if(jsObjectClass != null) {
netscape.javascript.JSObject window;
window = netscape.javascript.JSObject.getWindow(this);
window = (netscape.javascript.JSObject)window.getMember("top");
window.eval("test();");
} else {
try {
url = new URL("javascript:top.test();");
getAppletContext().showDocument(url);
} catch(MalformedURLException e) {
button.setLabel("不支持JavaScript调用!");
}
}
}
return true;
}
}
这样没问题了吧!!!
|
applet访问javascript要用到JSObject对象
example:
JSObject win;
JSObject doc;
JSObject form;
JSObject textField ;
win = JSObject.getWindow(this);
//执行JavaScript中的方法
win.eval("functionNameInJavascript()");
example:
JSObject win;
JSObject doc;
JSObject form;
JSObject textField ;
win = JSObject.getWindow(this);
//执行JavaScript中的方法
win.eval("functionNameInJavascript()");