在.js文件上从.java文件调用函数
Calling a function from .java file on .js file
我是javascript和java编程的新手。我有一个带有函数updateInfo()的.java文件。我想在我的.js文件中调用这个函数。我该怎么做?请帮忙。谢谢
可以,但不能直接。
一种选择是使用像ApacheCXF或Jersey这样的JAX-RS实现。一旦创建了映射到Java文件中方法的RESTful web服务,就可以使用JavaScript进行AJAX调用。因此,您当然可以通过JavaScript以RESTful web服务的形式调用Java方法。
首先确保您的java被编译到jar(并扩展applet/japplet)
您可以使用netscape.javascript.*
调用javascript函数
HTML 示例
<head>
<title>Data Summary Applet Page - Java to JavaScript LiveConnect</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<script language="javascript">
var userName = "";
// returns number
function getAge() {
return 25;
}
// returns an object
function address() {
this.street = "1 Example Lane";
this.city = "Santa Clara";
this.state = "CA";
}
// returns an array
function getPhoneNums() {
return ["408-555-0100", "408-555-0102"];
}
function writeSummary(summary) {
summaryElem =
document.getElementById("summary");
summaryElem.innerHTML = summary;
}
</script>
<!-- ... -->
</head>
<body>
<script src =
"http://www.java.com/js/deployJava.js"></script>
<script>
<!-- ... -->
deployJava.runApplet(attributes, parameters, '1.6');
</script>
<!-- ... -->
<p id="summary"/> // this HTML element contains
// the summary
<!-- ... -->
</body>
示例java实现:
package javatojs;
import java.applet.Applet;
import netscape.javascript.*; // add plugin.jar to classpath during compilation
public class DataSummaryApplet extends Applet {
public void start() {
try {
JSObject window = JSObject.getWindow(this);
String userName = "John Doe";
// set JavaScript variable
window.setMember("userName", userName);
// invoke JavaScript function
Number age = (Number) window.eval("getAge()");
// get a JavaScript object and retrieve its contents
JSObject address = (JSObject) window.eval("new address();");
String addressStr = (String) address.getMember("street") + ", " +
(String) address.getMember("city") + ", " +
(String) address.getMember("state");
// get an array from JavaScript and retrieve its contents
JSObject phoneNums = (JSObject) window.eval("getPhoneNums()");
String phoneNumStr = (String) phoneNums.getSlot(0) + ", " +
(String) phoneNums.getSlot(1);
// dynamically change HTML in page; write data summary
String summary = userName + " : " + age + " : " +
addressStr + " : " + phoneNumStr;
window.call("writeSummary", new Object[] {summary}) ;
} catch (JSException jse) {
jse.printStackTrace();
}
}
}
有关从java调用javascript的更多信息
有关从javascript 调用java方法的更多信息
您不能直接从JavaScript调用java方法。等于是否编译java代码。
要将Java代码与JavaScript绑定,必须创建第一个Applet。之后,有几种技术可以从Applet调用JavaScript,反之亦然
相关文章:
- 从.js文件调用html中的js函数
- 可以't在Wordpress中从HTML中的JS文件调用函数
- 从HTML中的外部JS文件调用函数
- 从angularjs文件调用apicontroller时未发现错误
- 无法从 jquery 中的外部文件调用特定内容
- 如何检查该函数是否从外部js文件调用
- 如何在 jQuery 中使用 eval 从不同的文件调用另一个函数
- 从 PHP 文件调用 js 函数
- 在Rails中使用remote:true在Chrome中有效,但在Safari中无效——从js.erb文件调用succe
- 从外部Javascript文件调用方法
- 从单个angularjs文件调用所有控制器
- 从.ascx文件调用Javascript函数时出错
- 如何从批处理文件调用一个带有2个参数的java脚本函数,并将结果返回到环境变量
- 从另一个文件调用时出现Javascript作用域错误
- 从一个 Javascript 文件中从另一个 Javascript 文件调用函数
- 如何从另一个.js文件调用.js
- 从另一个文件调用函数
- 从 erb 文件调用 js 函数
- 使用 Node js 从另一个文件调用两个文件
- 从 rails 中的不同 coffeescript 文件调用函数