Nik*_*hev 2 javascript java jnlp applet next-generation-plugin
我希望能够使用javascript调用我的JNLP类的函数.让我们假设在我的applet中我有一个像这样定义的函数: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>
Run Code Online (Sandbox Code Playgroud)
这是从javascript调用JNLP部署的applet函数的正确方法吗?因为这个人不给我任何东西.
我很久以前就得到了它,但我忘了回答自己的问题.所以这里是:
我们假设您定义了这样的applet:
<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>
Run Code Online (Sandbox Code Playgroud)
你可以得到一个JavaScript!像这样处理applet:
var parentAPPLET = document.getElementById("appletToTest");
Run Code Online (Sandbox Code Playgroud)
现在,无论你在applet中使用什么方法,它最好返回String或原始值,但即使它没有,你可以在它假设你知道它的方法的情况下对它进行操作.从上面继续我的例子,如果在你的applet中你有一个像这样定义的函数:
public String returnSomething(){ return "bla"; }
Run Code Online (Sandbox Code Playgroud)
然后你可以用你的javascript调用它:
var parentAPPLET = document.getElementById("appletToTest");
alert (parentAPPLET.returnSomething());
Run Code Online (Sandbox Code Playgroud)
恭喜你,你从JWS部署的javascript中调用了一个Java Applet方法.
还有另一种方法可以做到这一点,但它只适用于Firefox,所以最好使用这个.即使该技术已被弃用,LiveConnect规则仍然适用.
| 归档时间: |
|
| 查看次数: |
6035 次 |
| 最近记录: |