java想调用前台js文件里的方法
我用了脚本引擎方法在后台java里调用前台js文件中的方法,现在已经能调用到方法,方法部分如下InvocableinvEngine=(Invocable)engine;r...
我用了脚本引擎方法在后台java里调用前台js文件中的方法,现在已经能调用到方法,方法部分如下
Invocable invEngine = (Invocable) engine;
result = invEngine.invokeFunction("getDateft","flag");//js方法名称getDateft
但是貌似用这个方法读取js的时候不能想浏览器那种正常解释,比如对于jquery的部分代码符号$都不能正确解释报错如下,是不是java执行脚本引擎方法的时候需要配置什么?
我只配置了 ScriptEngine engine = manager.getEngineByMimeType("text/javascript");和编码
错误提示:javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "document" is not defined. (<Unknown source>#9) in <Unknown source> at line number 9 展开
Invocable invEngine = (Invocable) engine;
result = invEngine.invokeFunction("getDateft","flag");//js方法名称getDateft
但是貌似用这个方法读取js的时候不能想浏览器那种正常解释,比如对于jquery的部分代码符号$都不能正确解释报错如下,是不是java执行脚本引擎方法的时候需要配置什么?
我只配置了 ScriptEngine engine = manager.getEngineByMimeType("text/javascript");和编码
错误提示:javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "document" is not defined. (<Unknown source>#9) in <Unknown source> at line number 9 展开
3个回答
展开全部
Java是后台运行的,你需要把前台的js文件读入后台才能执行,比如通过engine.eval(new FileReader(jsfile));这样的语句才能执行 ,而且执行的结果只在后台,和前台没关系。
更多追问追答
追问
我做了个demo能正常执行
追答
哦,刚才没看清问题,不好意思。
错误提示:javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "document" is not defined. (#9) in at line number 9
你这个错误肯定报,因为java只是能够执行js脚本,但docment是浏览器的API对象,jdk里没有浏览器api,肯定不能执行。
展开全部
JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码。
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
js是前台代码
java是后台代码,通常来说是前台发送请求给后台,然后后台处理请求,响应并跳转,你用后台来调用前台js,不明白你的需要
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询