大佬们 有没有“运行第三方 js”的库?最好带沙盒的那种

226 天前
 bug51

一个 vue 低代码项目,想用户在页面上 ide 控件输入一段 js ,然后在对应组件的生命周期回调中运行这段 js 。

其实就是类似 jsonp 创建 script 执行或者调用 worker 执行这段 js 之类的。单纯一个 eval 非常不实用。

突然网上看到说要为 js 弄一个沙盒沙箱模块,好像也有道理。这个实现难度就不是个人短期能搞定的。这个直接引用别人的库或者开源模块吧,好像 github 没找到。

这么多厂商做低代码,应该有开源这个模块的吧。。。。

1114 次点击
所在节点    前端开发
8 条回复
qq347891134
226 天前
bug51
226 天前
感觉在 vue composition 里面是能实现的,分成两部分:
v-html ,把用户的 vue 模板代码编译上去。
然后 js 区域弄一个 组合式函数 useSandbox ,用户编写,返回几个数据值。通过数据值来驱动模板状态更新。
ysc3839
226 天前
印象中放 iframe 里面能实现沙盒,可以参考 ZeroNet 的方案。
不过这么做还是比较复杂,不太考虑性能的话,可以考虑用 wasm 跑一个 js 引擎。
tool2d
226 天前
eval 挺实用的,我最喜欢用 eval 了。

你这个需求在传统行业里,叫脚本语言。
Dewent
226 天前
看看 webcontainers,不确定是不是满足
sapjax
226 天前
zhy0216
226 天前
quickjs
crysislinux
226 天前
可以用 https://github.com/justjake/quickjs-emscripten. iframe 要搞得安全还是要费点功夫,不过你可以加载一个跨域的 iframe 来做。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1030301

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX