当前位置: 首页 > 面试题库 >

从Java代码调用外部JavaScript函数

沈建柏
2023-03-14
问题内容

通过使用Java Scripting
API,我能够在Java中执行JavaScript。但是,有人可以解释一下我需要添加到此代码中以便能够调用C:/Scripts/Jsfunctions.js中的函数吗?

import javax.script.*;

public class InvokeScriptFunction {
public static void main(String[] args) throws Exception {
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("JavaScript");

    // JavaScript code in a String
    String script1 = (String)"function hello(name) {print ('Hello, ' + name);}";
    String script2 = (String)"function getValue(a,b) { if (a===\"Number\") return 1; 
                     else return b;}";
    // evaluate script
    engine.eval(script1);
    engine.eval(script2);

    Invocable inv = (Invocable) engine;

    inv.invokeFunction("hello", "Scripting!!" );  //This one works.      
 }
}

问题答案:

使用ScriptEngine.eval(java.io.Reader)读剧本

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
// read script file
engine.eval(Files.newBufferedReader(Paths.get("C:/Scripts/Jsfunctions.js"), StandardCharsets.UTF_8));

Invocable inv = (Invocable) engine;
// call function from script file
inv.invokeFunction("yourFunction", "param");


 类似资料:
  • 通过使用Java脚本API,我能够在Java中执行JavaScript。但是,有人能解释一下,为了能够调用C:/scripts/jsfunctions.js中的函数,我需要在这段代码中添加什么内容吗

  • 问题内容: 我想从JavaScript代码中调用Python函数,因为JavaScript中没有其他方法可以做我想做的事情。这可能吗?您可以调整以下代码段使其正常工作吗? JavaScript代码: 包含使用高级库编写的函数,这些函数在JavaScript中没有易写的等效项: 问题答案: 您需要做的就是向您的pythoncode发出ajax请求。您可以使用jquery 进行此操作,也可以仅使用ja

  • 问题内容: 我不确定之前是否有人问过这个问题,或者有人在reactjs上遇到过同样的问题。所以场景是这样的,我有一个包含一些javascript 的 index.html 文件。现在,在我的react组件上,我有一个仅在条件为true时才会呈现的条件。这意味着最初在我的页面加载时,尚未呈现该组件。当我切换按钮时,这就是渲染该组件的地方。该子组件需要调用index.html中包含的javascrip

  • 问题内容: 我在Java GWT代码中有一个按钮。而且我在scripts文件夹中有一个javascript文件。我想在Button单击时访问该js文件的功能。 那么如何从Java GWT代码(Button的click事件)中调用该方法呢? 任何人都可以告诉我访问js文件功能的代码或方法。 提前致谢。 问题答案: 由于您的代码不应依赖于gwt链接器(及其加载代码的方式),因此需要在调用之前添加正确的

  • 问题内容: 我使用PhoneGap开发了一个应用程序。我得到了一项在后台进行本地编码的服务(该服务和手机缺口应用程序在同一项目中)。不幸的是,我想从此服务中调用javascript函数。因此,我在网上搜索并创建了一些有趣的东西:创建一个扩展Plugin的类并在其中进行一些处理。然后我发现了这个: 我用此代码进行了测试,但是发生了一些错误: 这是我测试的方式: 在类c中,execute方法如下: 当

  • 问题内容: 如果可以的话,如何在Wicket的JavaScript代码中调用Java代码(例如方法)。 问题答案: 呃 正确的答案应该是ajax回调。您可以手动将js编码为挂钩到wicket js,也可以在java中通过wicket组件设置回调。例如,从AjaxLazyLoadPanel中: 本示例说明如何将回调代码添加到Wicket中的任何组件。在浏览器中触发OnDomReady事件后,加载页面