从javascript调用的applet方法中的return语句

时间:2015-01-19 06:31:39

标签: java javascript swing servlets applet

我的场景就像是从javascript调用applet API,其返回语句是boolean,但我无法从该方法获得布尔响应。

让我告诉那个方法里面发生了什么

    来自js控件的
  1. 将进入applet方法abc()

  2. 在abc()方法中我正在调用servlet,它在服务器端执行某些进程并返回我遇到的任何问题的响应。

  3. 在此之后我正在做一些常规的java东西并尝试返回true或false

  4. 我没有在javascript中收到此回复

  5. 注意:这些要点可能有助于找出问题

    1.我的applet实现了runnable接口,用于显示确认对话框,使用swing组件开发,这段代码在某些情况下不会触发。

    1. 我使用返回json响应的servlet 如果您需要任何细节,请告诉我

    2. 我在foreach中使用以下功能

      function abc()
      {
        var status = printerApplet.startBulkPersoProcessing(a, b, c);
                          alert("Is it coming here:::");
                          alert(status);
       }
      
    3. 此状态不会打印出来。

2 个答案:

答案 0 :(得分:1)

首先,您应确保将applet声明如下:

<APPLET code="MyApplet.class" height="0" id="myApplet" name="myApplet"
                                    archive="/path/to/MyApplet.jar"></APPLET>

之后从JS调用MyApplet,如下所示:

function callMyAppletFromJS() {
            alert("callMyAppletFromJS");
                document.getElementById('myApplet').jsAppletCall();
      }
在您的applet中

调用JS,如下所示:

public void jsAppletCall() {
      //       do you java stuff here 
      // then 
      // call the javascript from the applet using the JSOBject 
              JSObject win = JSObject.getWindow(this);
              win.eval("callJSFromMyAppletMessage();");
     }

以及从applet调用的JS函数,如下所示:

function callJSFromMyAppletMessage() {
     alert("callJSFromMyAppletMessage");
      }

所以从applet调用JS的方法是使用 JSObject ,请查看文档here以获取JSObject,因为它描述了此类的用法。

同样@Hemant提到,请查看有关此主题的oracle教程here

注意: 但请注意,如果您从JS调用您的applet,即使其已签名的applet,它也将被视为未签名的applet,请查看oracle docs here

希望有助于。

答案 1 :(得分:0)

您可以使用Java的JSObject来回调HTML视图中定义的JS函数。

这是处理异步函数调用的便捷方法之一。

有关JSObject实现的更多信息......

http://docs.oracle.com/javase/tutorial/deployment/applet/invokingJavaScriptFromApplet.html

希望它有所帮助!