java执行js对象,js函数执行

本文目录一览:

JavaScript的对象怎么在java后台调用

JavaScript的对象怎么在java后台调用

  // java调用js脚本的例子 

   ScriptEngineManager scriptEngineMgr = new ScriptEngineManager();

   ScriptEngine jsEngine = scriptEngineMgr.getEngineByName(“JavaScript”);

   StringBuffer sb = new StringBuffer();

   // 组装js代码,也可以从文件读入脚本到sb变量 

   jsEngine.put(“myContext”, myContext);// 放置其他参数

   jsEngine.eval(sb.toString());// 解析、执行脚本

java程序中运行js脚本

我们要在Java中执行JavaScriptMethods.js中的execute(s1,s2)方法,JavaScriptMethods.js文件内容如下:

function execute(s1, s2){

return s1 + s2;

}

首先需要定义一个接口,这个接口中给出与要执行的JavaScript方法一样的方法签名,我们定义接口Methods,它的内容如下:

/**

* 接口中的方法签名必须与要执行的JavaScript方法一致

* @author yuncong

*

*/

public interface Methods {

public String execute(String s1,String s2);

}

然后,就可以用脚本引擎执行JavaScriptMethods.js中execute(s1,s2)方法了,具体内容写在下面的ExecuteScript类中的:

import java.io.FileReader;

import javax.script.Invocable;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

public class ExecuteScript {

public static void main(String[] args) {

ScriptEngineManager manager = new ScriptEngineManager();

ScriptEngine engine = manager.getEngineByName(“js”);

try {

String path = ExecuteScript.class.getResource(“”).getPath();

System.out.println(path);

// FileReader的参数为所要执行的js文件的路径

engine.eval(new FileReader(path + “JavaScriptMethods.js”));

if (engine instanceof Invocable) {

Invocable invocable = (Invocable) engine;

Methods executeMethod = invocable.getInterface(Methods.class);

System.out.println(executeMethod.execute(“li”, “yuncong”));

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

运行ExecuteScript类,输出如下:

?

1

2

/C:/Users/yuncong/git/login/target/classes/executescript/

liyuncong

javascript中怎样用java中的对象

为了方便网页和Android应用的交互,Android系统提供了WebView中JavaScript网页脚本调用Java类方法的机制。只要调用addJavascriptInterface方法即可映射一个Java对象到JavaScript对象上。

1、映射Java对象到JavaScript对象上

代码如下:

mWebView = (WebView) findViewById(R.id.wv_content);

mWebView.setVerticalScrollbarOverlay(true);

final WebSettings settings = mWebView.getSettings();

settings.setSupportZoom(true);

//WebView启用Javascript脚本执行

settings.setJavaScriptEnabled(true);

settings.setJavaScriptCanOpenWindowsAutomatically(true);

//映射Java对象到一个名为”js2java“的Javascript对象上

//JavaScript中可以通过”window.js2java”来调用Java对象的方法

mWebView.addJavascriptInterface(new JSInvokeClass(), “js2java”);

代码如下:

/**网页Javascript调用接口**/

class JSInvokeClass {

public void back() {

activity.finish();

}

}

2、JavaScript调用Java对象示例

调用上述JSInvokeClass类对象的back方法,如下:

复制代码 代码如下:

window.js2java.back();

原创文章,作者:HFOZ,如若转载,请注明出处:https://www.506064.com/n/141800.html

(0)
HFOZHFOZ
上一篇 2024-10-09
下一篇 2024-10-09

相关推荐

  • 在php中定义一个类(php常用类)

    本文目录一览: 1、如何在thinkphp里面自定义类 2、如何在PHP中定义一个类 3、PHP中如何定义类及其成员属性与操作 如何在thinkphp里面自定义类 php在函数外定…

    编程 2024-10-03
  • 好看的登录界面

    一、好看的登录界面素材 在设计一个好看的登录界面之前,我们需要先搜集一些好看的素材。这些素材可以包括各种风格的登录按钮、背景图片、图标等等。可以通过以下网站来搜索好看的登录界面素材…

    编程 2024-10-04
  • cad螺丝,cad螺丝螺纹怎么画

    本文目录一览: 1、2020 cad螺栓模块在哪 2、CAD中让螺丝孔圆一点怎么设置 3、cad中螺丝和角钢模型在哪找 4、在CAD中怎么画螺丝? 5、CAD里面怎么画螺丝 6、c…

    编程 2024-10-04
  • win7安装Python版本选择

    引言 Python是一种广泛使用的编程语言,它在数据分析、机器学习、Web开发等领域都有很好的应用。在win7上安装Python时要选择合适的版本,本文将介绍如何选择适合自己的版本…

    编程 2024-10-04
  • php替换变量字符(php字符串替换指定字符)

    本文目录一览: 1、PHP实现替换一个变量,该变量为特殊且有规律的字符串,如何操作? 2、php怎么将一个是变量的字符串最后一位替换成自己想要的 3、php 字符替换怎么弄? 4、…

    编程 2024-10-03
  • PythonSVM代码详解

    一、介绍 支持向量机(Support Vector Machines,SVM)是一种非常优秀的分类算法,它在很多领域得到了广泛的应用。Python中的SVM算法实现引入了libsv…

    编程 2024-10-04
  • java抽象化优点(java抽象方法和普通方法的区别)

    本文目录一览: 1、“java 抽象”怎么理解? 2、java 抽象怎么理解? 3、java抽象 有什么好处? 4、java 抽象类的优势 “java 抽象”怎么理解? 抽象是一种…

  • js动态切换样式(js切换css样式)

    本文目录一览: 1、JS或Jquery动态改变导航栏样式 2、关于js中利用DOM动态改变CSS样式,请大神提供代码 3、建站知识:如何使用JS来自由切换css样式表 4、如何实现…

    编程 2024-10-03
  • Edenspace——探索宇宙、促进地球发展的先锋

    一、背景介绍 Edenspace由国内知名的航天科技公司作为主导发起,旨在利用航天科技,探索宇宙,加速地球科技的发展。作为第一家拥有私人商业航天公司的国家之一,中国已经投入大量的资…

    编程 2024-10-04
  • SQL Server Decimal数据类型

    一、什么是SQL Server Decimal数据类型 SQL Server Decimal数据类型是指一种精度较高的数值数据类型,在进行高精度计算时常被使用。它被广泛应用于金融、…

    编程 2024-10-04

发表回复

登录后才能评论