我想能够使用JavaScript调用我的JNLP类的功能。让我们在我的小程序假设我有这样定义的函数:public String returnSomething(){ return "bla"; }

   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- ########################## IMPORTANT NOTE ############################ -->
<!-- This preview HTML page will work only with JDK 6 update 10 and higher! -->
<!-- ###################################################################### -->
<html>
    <head>
        <title>Test page for launching the applet via JNLP</title>
    </head>
    <body>
        <h3>Test page for launching the applet via JNLP</h3>
        <script src="http://java.com/js/deployJava.js"></script>
        <script>
            var attributes = {
                code:       "winToJnaApi.NewApplet",
                archive:    "JavaApplication6.jar, lib/jna.jar, lib/platform.jar",
                width:      300,
                height:     300,
                name:       "applet",
                id:         "app"
            };
            var parameters = {jnlp_href:"launch.jnlp"}; <!-- Applet Parameters -->
            var version = "1.5"; <!-- Required Java Version -->
            deployJava.runApplet(attributes, parameters, version);
        </script>

    <input type = "button" value ="click" onClick = "document.write(document.getElementById("app").doSomething())">
    <script type="text/javascript">
        document.write(document.getElementById("app"));
    </script>
    </body>
</html>

这是正确的方法来调用JNLP部署的小应用程序的功能从JavaScript? 原因这一块并没有给我任何东西。

有帮助吗?

解决方案

我得到了它在很久以前,但我忘了回答我的问题。所以在这里,它是:

让我们假设你定义你的小应用程序是这样的:

<applet id="appletToTest" width=500 height=500 code="com.sample.SampleApplet" archive="JavaApplication6.jar, lib/lib1.jar, lib/lib2.jar">
   <param name="jnlp_href" value="launch.jnlp">
 </applet>

您可以得到一个javascript!处理对小应用程序是这样的:

var parentAPPLET = document.getElementById("appletToTest");

现在,你有你的小程序的任何方法,更好地返回字符串或原始值,但即使没有,你可以对它进行操作假设你知道它的方法。 继续上面我举的例子,如果你的小程序,你有一个像这样定义的函数:

public String returnSomething(){ return "bla"; }

然后就可以使用您的JavaScript这样称呼它:

var parentAPPLET = document.getElementById("appletToTest");
alert (parentAPPLET.returnSomething()); 

和恭喜你,你叫从已部署的JWS JavaScript中的Java小程序的方法。

有是这样做的,但它的工作只是在Firefox的另一种方式,所以更好的使用这一个。 LiveConnect的规则仍然适用,即使技术已经过时了。

其他提示

据我所知,小程序使用JNLP不再需要JS访问的推出,但我可能是错的。为了进一步研究它,我建议去除deployJava.js和硬编码的小程序元件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top