有時候由於一些不能說的原因,可能會遇到需要在java代碼中調用js函數的場景,下面就來說說如何調用吧。
首先說明一點,java不支持瀏覽器本身的方法,只支持自定義的js方法,否則會報錯。
1. 先建一個js文件,test.js,內容如下:
function add(a,b){
return a+b;
}
2. 在java代碼中調用js函數
public class Test {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
String jsFileName="D:\\test.js"; //js文件所在目錄
FileReader reader = new FileReader(jsFileName); // 執行指定腳本
engine.eval(reader);
if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine; // 調用merge方法,並傳入兩個參數
Double c = (Double)invoke.invokeFunction("add", 1, 2); //調用了js的add方法
System.out.println(c);
}
}
}
運行結果爲:3