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
展开
 我来答
必杀语
2014-05-26 · TA获得超过394个赞
知道小有建树答主
回答量:254
采纳率:100%
帮助的人:350万
展开全部
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,肯定不能执行。
百度网友d01d6db
2015-05-20 · TA获得超过7250个赞
知道小有建树答主
回答量:1875
采纳率:44%
帮助的人:402万
展开全部

JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码。

 ScriptEngineManager manager = new ScriptEngineManager();
  ScriptEngine engine = manager.getEngineByName("javascript");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rascal250
推荐于2017-09-30 · TA获得超过993个赞
知道小有建树答主
回答量:840
采纳率:50%
帮助的人:339万
展开全部
  1. js是前台代码

  2. java是后台代码,通常来说是前台发送请求给后台,然后后台处理请求,响应并跳转,你用后台来调用前台js,不明白你的需要

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式