【发布时间】:2011-06-22 10:32:53
【问题描述】:
在 etherpad 的源代码中,我看到了如下代码:
jimport(java.util.Date, "JDate");
但它看起来不像某种 javascript 标准。
它是如何完成的?
【问题讨论】:
-
对不起。误读了您的问题!
标签: java javascript html
在 etherpad 的源代码中,我看到了如下代码:
jimport(java.util.Date, "JDate");
但它看起来不像某种 javascript 标准。
它是如何完成的?
【问题讨论】:
标签: java javascript html
看起来您正在查看etherpad 来源。他们在那里定义了一个名为 jimport 的 helper function。
如前所述,etherpad 使用 Rhino 作为其 Javascript 引擎,Java 触手可及。这样就够了
file = java.io.File
为了“导入”它。
该函数使用辅助函数_jimportSinglePackage,将Java包注入本地Javascript作用域。
这个函数接收包名,以及它将注入包的全局范围,并给定a.b.c,它实际上调用globalscope[c] = a.b.c,以便import这个Java包。
【讨论】:
在 JavaScript 中加载 Java 库的能力高度依赖于您使用的服务器端 JavaScript 框架。
Rhino 绝对支持加载 Java。来自文档:
js> importPackage(java.io)
js> File
[JavaClass java.io.File]
【讨论】:
从 JavaScript 中使用 Java 类的另一种方式:
<html>
<body>
<script type="text/javascript">
document.write(new java.util.Date());
</script>
</body>
</html>
【讨论】: