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脚本里的方法的主要内容,如果未能解决你的问题,请参考以下文章

js怎么调用java 类中方法

在android中怎样调用本地js文件里的方法并得到返回值

在html页面中如何用js调用java类

js 怎么调用JAVA类的方法?具体代码?

DELPHI如何调用页面里的JS

javaweb中调用js