我们execjs除了nodejs
我们还需要浏览器环境
,我们浏览器上还需要document
以及window
对象所有呢我们要安装环境
1.本地安装Node.JS
2.Node中安装jsdom模块 npm install jsdom
3.JS文件开头添上下述固定代码
//解决TextEncoder is not defined const textencoding = require('text-encoding'); TextEncoder = textencoding.TextEncoder; TextDecoder = textencoding.TextDecoder; //解决浏览器环境问题 const jsdom = require("jsdom"); const {JSDOM} = jsdom; const dom = new JSDOM('<!DOCTYPE html><p>Hello world</p>'); window = dom.window; document = window.document; XMLHttpRequest = window.XMLHttpRequest;
4、python脚本中execjs的使用
import execjs #导入 node = execjs.get() #安装nodejs后,会得到运行环境名为:Node.js (V8) with open('js_code.js',encoding='utf-8') as f: js_code = f.read() ctx = execjs.compile(js_code, cwd=r'E:\Nodejs\node_modules\npm\node_modules') #compile方法去加载js代码,参数cwd指定本地安装模块所在目录 data = ctx.eval('getData(xxx)') #eval方法去执行js中的函数或方法