两种方法,一种是在applet里通过netscape提供的功能,访问jsp.
另一种就是在jsp页面通过写javascript写个计时器,不断检测applet的变量的值,当它的值为关闭退出时,就执行关闭窗口的javascript 函数.

解决方案 »

  1.   

    用jaws.jar._method是applet中的方法;
    jsmethod是javascript中的方法,你直接写在页面中就可以了.import netscape.javascript.*;
    public class MyApplet extends java.applet.Applet{
          ...
           private JSObject mainwin;
          ...
             //get a handle to the document object
           mainwin = JSObject.getWindow(this);  public void _method()
      {
           mainwin.eval("javascript:jsmethod()");            
      }     
    }
      

  2.   

    各位大虾,我的浏览器是ie,而且,我没有javascript的概念和经验,^_^b
    现在再学已经来不及了,请大家讲的稍微详细些。谢谢!!
      

  3.   

    呵呵,周末出去玩了没看到,虽然揭帖了,也凑凑热闹。引用了下面这个类
    import netscape.javascript.JSObject;
    创建一个对applet所在运行容器(就是你的IE啦)的关联
    JSObject window = JSObject.getWindow(this);
    在 applet 中可用
    window.call("functionname");
    就可以调用applet所在的web页面中的javascript函数。
    比如 
    windows.call("window.location.href=\"http://www.sina.com.cn\");
    windows.call("window.history.back(-1)");//返回上一页
    windows.call("window.history.close()");//关闭当前窗口,不过只要不是被父窗口关闭,都会有安全提示而你也可以调用一个function,并传递数量不等的参数
    String strServerMessage = "欢迎加入聊天室!";
    window.call("OnServerMessage",strServerMessage);
    这一句是调用web中我自己写的javascript函数 OnServerMessage,参数为 strServerMessage。
    该javascript函数内容为:
    function OnServerMessage(strMessage)
    {
      alert("Server:" + strMessage);
      //chatMain.document.write("<p class='servermsg'>[Server]" + strMessage</p>);
    }
    多几个参数的例子如:
    JSObject window = JSObject.getWindow(this);//当前窗口
    String[] KickMessage = {"","","",""};
    KickMessage[0] = superUser ;
    KickMessage[1] = userName ;
    KickMessage[2] = channelName ;
    KickMessage[3] = FilteHTML(becauseOf.substring(1)) ;
    window.call("OnKick",KickMessage );//调用外部页面的 OnKick 函数,其用来提示用户 username 被 superUser 以原因 becauseOf 从 channelName 踢了出去等...而用 window.eval("expresstion"),则是执行javascript表达式,返回一个结果,如
    String result = window.eval("3 + 2");