Java调用JS脚本里的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java调用JS脚本里的方法相关的知识,希望对你有一定的参考价值。
参考技术A 本例子使用了JDK 以上的javax script包 通过Invocable接口实现JAVA调用JS脚本里的方法 本例中调用分为内部执行脚本和外部执行脚本 外部执行脚本分为不带参数调用和带参数调用 主要采用invokeFunction方法调用 ObjectinvokeFunction(String name Object… args) 用于调用脚本中定义的顶层程序和函数 ObjectinvokeMethod(Object thiz String name Object… args) 对以前的脚本执行中已经编译的脚本对象(以 ScriptEngine 的状态保持)调用某一方法 package de javase; import javax script Invocable; import javax script ScriptEngineManager; import javax script ScriptEngine; import java io File; import java io Reader; import java io FileReader; public class AjavaInvokingFunction public static void main(String[] args) // 获得一个JavaScript脚本引擎 也可以是ECMAScript脚本引擎 ScriptEngineManager manager = new ScriptEngineManager() ScriptEngine engine = manager getEngineByName( JavaScript ) String titlescript = function sayTitle() + println( 源码实例 使用javax script调用JS脚本里的方法 ) + println( ) + ; try// 调用内部脚本执行 engine eval(titlescript) // 转换为Invocable Invocable invocableEngine = (Invocable) engine; // 不带参数调用sayTitle方法 invocableEngine invokeFunction( sayTitle ) // 调用外部脚本执行 // 创建JS文件的File对象 并读入流 File functionscript = new File( ajava js ) Reader reader = new FileReader(functionscript) // 开始执行ajava js里的程序 engine eval(reader) // 不带参数调用sayHello方法 invocableEngine invokeFunction( sayHello ) // 带参数调用sayHello方法 invocableEngine invokeFunction( sayHello mark ) catch (Exception e) e printStackTrace() ajava js文件 function sayHello() sayHello(null) function sayHello(name) if(name==null) println( 欢迎你!请注册Ajava会员 ) else println(name+ 独立JAVA社区欢迎你 ) 运行结果(控制台) 源码实例 使用javax script调用JS脚本里的方法 lishixinzhi/Article/program/Java/hx/201311/26436
怎么调用外部js文件?
就是把html里的javascript脚本跟页面代码分离出来,非网络调用!
看随机抽取这个例子。在一个页面中如下:
我们可以把 js 放在另外一个文件里,比如当前文件夹的 a.js 中。
这样 html 页面如下:
a.js
这样就行了。
当然,也可以把 a.js放在web上,然后引用成下面这样。
参考技术A 首先要将页面中的js代码放到一个a.js文件中,然后将a.js文件放在网站目录下,然后在html的head中<script src="js/a.js" type="text/javascript"></script>
a.js你可以根据需要命名,然后src要用相对路径。 参考技术B 在JS文件A中调用另一JS文件B,可以实现,但只能等A载入完成后才能载入B,实现代码:
在A中插入以下代码(经本地调试成功)
var otherJS = 'diaoyong.js';//js的地址,请自定义
document.write('');
如要调试,请在与页面同目录创建diaoyong.js,内容为
alert('调用到了外部的js!');
以上将追加在A引用的后面
注意:只能等A载入完成后才能载入B,所以A在载入完成后不能马上执行B中的任何代码的,它们间相互调用的代码必须等B也载入完成后才行;而且应该尽量使用函数直接定义,而非变量赋值匿名函数的方式来创建函数。 参考技术C <script src="js地址" type="text/javascript"></script> 参考技术D <script src=''位置''> </script>
以上是关于Java调用JS脚本里的方法的主要内容,如果未能解决你的问题,请参考以下文章