写了一个HTML文件,里面写了一个js函数printResult(msg),现在需要在一个java类里面调用这个js函数并传参进去,请问应该如何实现html代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My applet 'HelloWorld' starting page</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <SCRIPT type="text/javascript"> function sayHello()
{
var aaa=document.rmb.rmb_test.value;
//得到转换的值
var rmb = document.HelloWorld.sayHello(aaa);
document.rmb.rmb_result.value = rmb;
return true;
}
function printResult(msg)
{
document.rmb.rmb_result.value = msg;
return true;
} </SCRIPT>
<body> <applet code="HelloWorld.class" codebase="./" name="HelloWorld" archive="HttpProcessor.jar" width="0" height="0" MAYSCRIPT> <!--<param name="p0" value="">
<param name="p1" value="">--> </applet> <form name="rmb"> 输入名字:
<input type="text" name="rmb_test">
<br>
<input type="button" value="SayHello" onclick="sayHello()" />
结果:
<input type="text" name="rmb_result">
<br> </form>
</body>
</html>java类的部分代码如下:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByMimeType("text/javascript");
String script = "function printResult(){document.rmb.rmb_result.value = " + response + ";return true;}";
engine.eval(script);
System.out.println ( "***********4***********" );
Invocable inv = (Invocable) engine;
System.out.println ( "***********5***********" );
String value = String.valueOf(inv.invokeFunction("printResult",response));
System.out.println ( "***********6***********" + value);运行报错,说找不到document。如果将script换成script = "function printResult(){return ‘test’;}";是可以运行的。
如果是那样的话就是这个函数没办法跟html页面里的input通信啊。
我现在是想要调用html页面里的一个js函数,应该怎么做呢?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My applet 'HelloWorld' starting page</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <SCRIPT type="text/javascript"> function sayHello()
{
var aaa=document.rmb.rmb_test.value;
//得到转换的值
var rmb = document.HelloWorld.sayHello(aaa);
document.rmb.rmb_result.value = rmb;
return true;
}
function printResult(msg)
{
document.rmb.rmb_result.value = msg;
return true;
} </SCRIPT>
<body> <applet code="HelloWorld.class" codebase="./" name="HelloWorld" archive="HttpProcessor.jar" width="0" height="0" MAYSCRIPT> <!--<param name="p0" value="">
<param name="p1" value="">--> </applet> <form name="rmb"> 输入名字:
<input type="text" name="rmb_test">
<br>
<input type="button" value="SayHello" onclick="sayHello()" />
结果:
<input type="text" name="rmb_result">
<br> </form>
</body>
</html>java类的部分代码如下:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByMimeType("text/javascript");
String script = "function printResult(){document.rmb.rmb_result.value = " + response + ";return true;}";
engine.eval(script);
System.out.println ( "***********4***********" );
Invocable inv = (Invocable) engine;
System.out.println ( "***********5***********" );
String value = String.valueOf(inv.invokeFunction("printResult",response));
System.out.println ( "***********6***********" + value);运行报错,说找不到document。如果将script换成script = "function printResult(){return ‘test’;}";是可以运行的。
如果是那样的话就是这个函数没办法跟html页面里的input通信啊。
我现在是想要调用html页面里的一个js函数,应该怎么做呢?
解决方案 »
- 大家平时都用什么办法解决表单重复提交的刷新问题
- jsp+dao简单的增删查功能已经实现修改功能报java.sql.Date和java.util.Date转换异常
- webwork做分页程序,大家给我思路啊!
- http post 方法传递form 和文件,接受方需要怎样获取.
- 请教有关weblogic 建立连接池的问题.
- 树型菜单,总是搞乱,下面抹去了一部,咋回事?
- 【过年放点分】选日期的控件很多,弄个选时间的来【好的话就给偶顶】
- tomcat服务端调用dll无法成功
- 【求助】具有ftp功能的bean,回复含金量高者,100
- 在线问题:tomcat中的javabean问题
- 如何用正则表达式截取网页内容的问题!
- 一连接项目就报错Servlet.service() for servlet jsp threw exception
从js往java传,可以用ajax
从java往js传,可以用json友情提示,清晰的结构更利于开发和调试。
PrintWriter out = new PrintWriter(response.getWriter());
out.print("<script language=\"javascript\">");
你具体的代码!
out.close();
return null;
用这个就可以调用html里的js函数了