如何在JavaScript中使用由Applet中的方法所返回的值?

hhjgx 2002-09-19 06:27:05
我最近在做一个程序,需要用一个applet从本地读取一个文件的内容,然后在页面中的另一个javascript中访问由applet返回的文件的内容(一些字符串)。

我的applet程序能正确读取文件中内容。但我不知如何从javaScript中访问由applet返回的这些内容。
请各位大侠帮忙解决一下!

applet程序和javaScript程序的源码如下:

(1)html文件:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body onLoad = "getString()" bgcolor="#FFFFFF" text="#000000">
<applet
codebase="."
code="docview.fileInput.class"
name ="fileInput"
width="600"
height="300"
>
</applet>
<SCRIPT LANGUAGE="JavaScript1.2">
<!--
function getString(){
var abc = window.document.fileInput.getStrings();
var sss = new String(window.document.fileInput.getStr())
//document.write(str);

          //在这里如何才能使用applet中的方法所返回的值?

document.writeln("dfaksf");
document.write(abc);
}
//-->
</SCRIPT>

</body>
</html>

(2)applet源文件
package docview;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
import javax.swing.*;
import java.util.Vector;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/

public class fileInput extends Applet {
boolean isStandalone = false;
File iniFile;
JScrollPane jScrollPane1 = new JScrollPane();
BorderLayout borderLayout1 = new BorderLayout();
JTextArea textArea = new JTextArea();
Vector fileStr = new Vector();
//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}

//Construct the applet
public fileInput() {
iniFile = new File("./tree.txt");
System.out.println(iniFile.getAbsolutePath() );
System.out.println(iniFile.canRead() );
try{
FileReader fr = new FileReader(iniFile);
//System.out.println(iniFile.getName() );
int c;
int i=0;
String tempStr = new String("");
while ((c = fr.read()) != -1){
if(((char)c)!='\n'){
tempStr += (char)c;
}else{
i++;
fileStr.addElement(tempStr) ;
tempStr = new String("");
}
//System.out.print(c);
}
fr.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
//Initialize the applet
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
System.out.println("jbinit");
this.setLayout(borderLayout1);
textArea.setText("jTextArea1");
this.add(jScrollPane1, BorderLayout.CENTER);
jScrollPane1.getViewport().add(textArea, null);
}

public void start(){
//textArea.setText(textArea.getText() +"\n"+fileContent.toString()) ;
for(int i=0; i<fileStr.size();i++)
textArea.setText(textArea.getText() +"\n"+fileStr.elementAt(i).toString() ) ;
for(int j=0; j<this.getStrings() .length; j++)
System.out.println(this.getStrings()[j]);
}

public String[] getStrings(){
String str[] = new String[fileStr.size() ];
for(int i=0; i<fileStr.size() ; i++)
str[i] = (String)fileStr.elementAt(i) ;
return str;
}

public String getStr(){return "aaaaa";}
//Get Applet information
public String getAppletInfo() {
return "Applet Information";
}
//Get parameter info
public String[][] getParameterInfo() {
return null;
}
}


...全文
46 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhjgx 2002-09-28
  • 打赏
  • 举报
回复
<接上一条>

我查了相关的文档,也做了一些实验,能直接在javaScript中得到applet返回的字符串,但字符串数组就不能获取。为什么?
hhjgx 2002-09-28
  • 打赏
  • 举报
回复
Thanks a lot!

这几天我出差去了,不好意思没有及时回复。

文章很好,我自己也“javascript 从入门到精通”上找到与这篇文章相同内容的部分。但我还是很感谢你的。

可是,我的问题还没有解决。

我在Applet中定义的 public String[] getStrings()方法,在javaScript中调用时,javaScript提示没有定义相应的类型。我查了相关的
孟子E章 2002-09-19
  • 打赏
  • 举报
回复
http://www.csdn.net/Develop/read_article.asp?id=10507

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧