存档

文章标签 ‘js’

uncaught JavaScript runtime exception: ReferenceError: “window” is not defined

2015年2月10日 没有评论

java 调用js的时候,遇到报 uncaught JavaScript runtime exception: ReferenceError: “window” is not defined 错误。

google一把,发现原因在于被调用的js 引用了浏览器环境变量window ,而该变量并没有加载进来。

解决方法如下。

import org.mozilla.javascript.Context;
import org.mozilla.javascript.tools.shell.Global;
import org.mozilla.javascript.tools.shell.Main;

public class JavaRunJs {

	public static void main(String[] args) {
		Context cx = Context.enter();
		Global scope = new Global(cx);
		cx.setOptimizationLevel(-1); 
		cx.setLanguageVersion(Context.VERSION_1_7);
		Main.processFile(cx, scope, "env.js");
		Main.processFile(cx, scope, "输入你要加载的js");
		System.out.println((String)cx.evaluateString(scope, "输入你要执行的js代码", "js", 1, null));
	}

}

依赖的jar和js如下

http://gitsea.qiniudn.com/js.jar

env

参考:http://stackoverflow.com/questions/15507419/envjs-and-rhino-in-a-java-application-where-to-find-env-rhino-js

https://github.com/thatcher/env-js