import-html-entry js沙箱实现源码
Published:
·
LastMod: March 16, 2023
·
499 words
import-html-entry js沙箱实现 🔗
getExecutableScript函数 🔗
- scriptText: 读取js文件的内容
- sourceUrl:用作sourcemap的指引
|
|
内部实现其实就是拼接了一个自执行函数,最后使用eval执行该字符串达到函数执行的目的
仔细分析这个沙箱函数
- 第一步,声明一个函数,并且把代码放入函数内部执行,这里通过函数内部的作用域进行隔离
- 第二步: 通过bind函数改变上下文作用域
window.proxy
- 第三步:执行该函数,传入三个参数
window.proxy
这样函数体内部的window,其实是外部参数传入的window
为防止嵌套应用内部拿到的window执行错误问题
|
|
代码注释写的很明白
通过eval('window')
拿到全局window