1. 如何在java中调用js方法

在Java中调用js文件中的function,传入调用参数,并获取返回值
js文件中的merge函数将两个参数a,b相加,并返回c。
// expression.js
function merge(a, b) {
c = a * b;
return c;
}

在Java代码中读取js文件,并参数两个参数,然后回去返回值。
package com.sinaapp.manjushri;

import java.io.FileReader;
import javax.script.Invocable;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;
/** * Java调用并执行js文件,传递参数,并活动返回值 * * @author manjushri */

public class ScriptEngineTest {

public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");

String jsFileName = "expression.js"; // 读取js文件

FileReader reader = new FileReader(jsFileName); // 执行指定脚本
engine.eval(reader);

if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine; // 调用merge方法,并传入两个参数

// c = merge(2, 3);

Double c = (Double)invoke.invokeFunction("merge", 2, 3);

System.out.println("c = " + c);
}

reader.close();

}
}

输出结果:
c = 5.0

2. java 中执行js方法

问题很无厘头 执行js当然是在浏览器执行的,java提现的话 就是jsp或者其他的view

3. 如何用java执行爬到网页中的js

如果只是单纯的抓取网站数据(包括登录以后),似乎都不需要解析,执行js。如果是ajax直接加一段httpGet,httpPost的头new BasicHeader("X-Requested-With", "XMLHttpRequest"),如果 如你问题所示必须执行js,试试htmlunit,它是jsoup + httpclient以及带有js解析器的结合体,本来是web测试用的框架

4. 如何用java执行指定页面中的js代码

要在java中执行js代码,首先明白,java不支持浏览器本身的方法。支持自定义的js方法,否则会报错

先新建一个js文件:jsss.js

内容如下:

function aa(a,b){ return a+b;
}

然后在java中写代码:

public class ZipTest {
public static void main(String[] args) throws Exception {

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
String jsFileName="G:\javaPro\zmwmcc\WebRoot\jsss.js";
FileReader reader = new FileReader(jsFileName); // 执行指定脚本 engine.eval(reader);
if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine; // 调用merge方法,并传入两个参数
Double c = (Double)invoke.invokeFunction("aa", 2, 3); //调用了js的aa方法
System.out.println(c);
}
// engine.eval("alert("js alert");"); // 不能调用浏览器中定义的js函数 // 错误,会抛出alert引用不 }
}

5. java如何调用javascript的函数

[java] view plainprint?
<span style="font-size:18px;">package suggestion16;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;

import javax.script.Bindings;
import javax.script.Invocable;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class ScriptText {

public static void main(String[] args) throws FileNotFoundException, ScriptException, Exception {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
Bindings bind = engine.createBindings();
bind.put("factor", 2); //这里绑定一个factor的值为2.
engine.setBindings(bind,ScriptContext.ENGINE_SCOPE);
Scanner input = new Scanner(System.in);
while(input.hasNext())
{
int first = input.nextInt();
int sec = input.nextInt();
System.out.println("输入的参数为:"+ first+ " , " + sec);
engine.eval(new FileReader("E:/cal.js"));
if(engine instanceof Invocable)
{
Invocable in = (Invocable)engine;
Double result = (Double)in.invokeFunction("cal",first,sec);
System.out.println("运算结果为:" + result.intValue());
}
}
}

}
</span>

其中的“E:/cal.js”就是我们js文件的保存路径。并且这个主函数可以循环的输入。
我们运行一下这个程序得到的结果如下:
[html] view plainprint?
<span style="font-size:18px;">1
2
输入的参数为:1 , 2
运算结果为:1
</span>
上面也就是 调用了 1 + 2 - 2 = 1 ,所以结果为1
我们将js文件中的function方法改变下,改编为下面的函数:
[javascript] view plainprint?
<span style="font-size:18px;">function cal(var1,var2)
{
return var1+var2*factor;
}</span>

6. java程序中运行js脚本

我们要在Java中执行JavaScriptMethods.js中的execute(s1,s2)方法,JavaScriptMethods.js文件内容如下:

function execute(s1, s2){
return s1 + s2;
}

首先需要定义一个接口,这个接口中给出与要执行的JavaScript方法一样的方法签名,我们定义接口Methods,它的内容如下:

/**
* 接口中的方法签名必须与要执行的JavaScript方法一致
* @author yuncong
*
*/
public interface Methods {
public String execute(String s1,String s2);
}

然后,就可以用脚本引擎执行JavaScriptMethods.js中execute(s1,s2)方法了,具体内容写在下面的ExecuteScript类中的:

import java.io.FileReader;

import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class ExecuteScript {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
try {
String path = ExecuteScript.class.getResource("").getPath();
System.out.println(path);
// FileReader的参数为所要执行的js文件的路径
engine.eval(new FileReader(path + "JavaScriptMethods.js"));
if (engine instanceof Invocable) {
Invocable invocable = (Invocable) engine;
Methods executeMethod = invocable.getInterface(Methods.class);
System.out.println(executeMethod.execute("li", "yuncong"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

运行ExecuteScript类,输出如下:

?

1
2

/C:/Users/yuncong/git/login/target/classes/executescript/
liyuncong

7. java 调用 js函数

function是属于javascript里面的语法,而<%%>里面调用的是java的语法,所以想要用<%%>调用alert()是不行了,因为他们不是同一个东西。
不知道你的意思是不是页面一加载就进行调用alert(),如果是这样的话,建议使用onload事件,表示页面加载的时候调用alert();
或者如果是点击的时候调用,那么久调用onclick()..总而言之可以使用事件完成。

8. 如何通过java代码调用js

JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码。
在Java中直接调用js代码
不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert” is not defined。
package com.sinaapp.manjushri;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException; /** * 直接调用js代码 */
public class ScriptEngineTest {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
try{

engine.eval("var a=3; var b=4;print (a+b);");

// engine.eval("alert(\"js alert\");"); // 不能调用浏览器中定义的js函数 // 错误,会抛出alert引用不存在的异常
}catch(ScriptException e){

e.printStackTrace();
}
}
}

9. java怎样调用js

//java调用js脚本的例子
=newScriptEngineManager();
ScriptEnginejsEngine=scriptEngineMgr.getEngineByName("JavaScript");
StringBuffersb=newStringBuffer();
//组装js代码,也可以从文件读入脚本到sb变量
jsEngine.put("myContext",myContext);//放置其他参数
jsEngine.eval(sb.toString());//解析、执行脚本

10. jsp中的java代码可以调用js吗

JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码。
参考一下代码吧:
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
try {
engine.eval("var a=3; var b=4;print (a+b);");
// 不能调用浏览器中定义的js函数
// engine.eval("alert(\"js alert\");"); // 错误,会抛出alert引用不存在的异常
} catch (ScriptException e) {
e.printStackTrace();
}
}