Ruby 为什么我用 execjs 执行下面代码的时候,会说 createElement 属性未定义,这个不应该是 js 自己定义好的吗

1365846392 · 2022年11月24日 · 最后由 Rei 回复于 2022年11月24日 · 204 次阅读
pwd = '123321'
pub_key = '04a5ec8bd0c593a6384830ba34a5a54ceb853da080813437c15dc9736f6883af3303d92f14614849e3fdc5d24b1a517c2509b2fca766c37b2beca48806de540ff0'
url = "https://ipo.ebscn.com/obm-ipo/scripts/main.min.c79c5211.js"
rsa_script = "window = {};" << (RestClient.get url).body
rsa_script << "return [window.sm2Encrypt('#{pwd}','#{pub_key}',0)];"
rsa_script.force_encoding('utf-8')
ExecJS.exec rsa_script

createElement 是属于 DOM 的,调用的 js runtime 没有实现 DOM。

有一个 nodejs 实现的 DOM https://github.com/jsdom/jsdom

需要 登录 后方可回复, 如果你还没有账号请 注册新账号