如何在js2py中导入外部JavaScript文件的函数?
用js2py调用外部JS文件中的函数
你的场景是:Python代码里用js2py执行自定义JS逻辑,但需要调用另一个JS文件里导出的numar函数。下面是两种可行的实现方式:
方式一:在Python中挂载全局函数
先加载外部JS模块,把导出的函数挂载到JS执行环境的全局作用域,这样自定义JS代码就能直接调用:
假设外部JS文件名为utils.js,内容如下:
export function numar(){ return 1; //return 1 if the checkbox is }
修改后的Python代码:
import js2py # 加载外部JS文件,获取导出的模块对象 utils_module = js2py.require('./utils.js') # 替换为你的JS文件实际路径 # 初始化JS执行上下文 js_context = js2py.EvalJs() # 将numar函数挂载到全局作用域 js_context.numar = utils_module.numar # 定义需要执行的JS代码 js_code = ''' function myfunction(){ var b = numar(); return b; } ''' # 执行JS代码 js_context.execute(js_code) # 调用函数并输出结果 print(js_context.myfunction())
方式二:在JS代码中直接导入
直接在要执行的JS代码里用require导入外部模块,和Node.js的写法类似:
import js2py # 定义包含导入逻辑的JS代码 js_code = ''' // 从外部JS文件导入numar函数 const { numar } = require('./utils.js'); function myfunction(){ var b = numar(); return b; } ''' # 执行JS代码并调用函数 js_context = js2py.EvalJs() js_context.execute(js_code) print(js_context.myfunction())
注意事项
- 确保
require的路径正确:如果JS文件和Python脚本不在同一目录,要使用相对路径(比如../js/utils.js)或绝对路径。 - js2py的
require支持ES6的export语法,无需额外转换JS代码。
内容的提问来源于stack exchange,提问作者Al3x4ndru11
相关产品推荐
相关产品推荐

