里边没有关于java applet如何向javascript函数传参数.

解决方案 »

  1.   

    有没有装netscape,没有的话装一个,
    把Netscape目录下的\Communicator\Program\java\classes\java40.jar加到Classpath中去.一下是Applet的写法:
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    import netscape.javascript.*;
    public class MyClass extends java.applet.Applet implements ActionListener
    {
    Button bt = new Button("Exec");
    public void init()
    {
    bt.addActionListener(this);
    this.add(bt);
    }
    public void paint(Graphics g)
    {}

    public void actionPerformed(ActionEvent ev) {
    String label = ev.getActionCommand(); if(label.equals("Exec"))JSObject.getWindow(this).call("doTest",null);
        }
    }
    测试的html文件如下:
    <HTML>
    <HEAD>
    <TITLE> New Document For Using Applet </TITLE>
    </HEAD><BODY>
    Hello This is a Test!<br>
    <APPLET id="obj_applet" align=center code=MyClass codeBase="." width=400 height=300 id=JavaApplet name=JavaApplet archive="myclass.jar"></APPLET>
    <Script language=javascript>
    function doTest()
    {
    alert("Hello");
    }
    </Script>
    </BODY>
    </HTML>
      

  2.   

    IE 支持这种JavaScript做法吗?
      

  3.   

    是的!传递参数的详细实现如下:import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    import netscape.javascript.*;
    public class MyClass extends java.applet.Applet implements ActionListener
    {
    Button bt = new Button("Exec");
    String str = Math.random()+"";
    public void init()
    {
    bt.addActionListener(this);
    this.add(bt);
    }
    public void paint(Graphics g)
    {
    g.drawString(str,10,10);
    }

    public void actionPerformed(ActionEvent ev) {
    String[] param= {""+Math.random()};
    try{
    str = (String)JSObject.getWindow(this).call("doTest",param);
    }catch(Exception exp)
    {
    this.showStatus(exp.toString());
    str = param[0];
    }
    repaint();
        }
    }测试的html文件如下:
    <HTML>
    <HEAD>
    <TITLE> New Document For Using Applet </TITLE>
    </HEAD><BODY>
    Hello This is a Test!<br>
    <APPLET id="obj_applet" align=center code=MyClass codeBase="." width=400 height=300 id=JavaApplet name=JavaApplet archive="myclass.jar"></APPLET>
    <Script language=javascript>
    function doTest(vdt)
    {
    测试的html文件如下:
    <HTML>
    <HEAD>
    <TITLE> New Document For Using Applet </TITLE>
    </HEAD><BODY>
    Hello This is a Test!<br>
    <APPLET id="obj_applet" align=center code=MyClass codeBase="." width=400 height=300 id=JavaApplet name=JavaApplet archive="myclass.jar"></APPLET>
    <Script language=javascript>
    function doTest()
    {
    alert(vdt);
    return "Pass in is:"+vdt+"\nReturn is: "+vdt;
    }
    </Script>
    </BODY>
    </HTML>
    }
    </Script>
    </BODY>
    </HTML>
      

  4.   

    你也可以不装netscape,那个包其实微软已经替你装了,只是如果你不是在
    windows下的是后你要考虑找到那个包.
    微软那个包的位置是:C:\WINNT\java\Packages\0S0W0NFX.ZIP,他其实也是拷贝
    netscape的.