编写插件之前,我们需要了解插件的运行机制以便进行开发。
摹客DT的插件是使用 JavaScript、HTML 和 CSS 编写的,类似于浏览器的环境。但使用JavaScript编写摹客DT 插件与使用JavaScript 编写网站是不同的。
为了使插件更安全更稳定,我们使用了一个执行模型,可以在沙箱中的主线程上运行插件代码。沙箱是一个最小的 JavaScript 环境,不会暴露浏览器的 API,这意味着你拥有所有可用的标准 JavaScript ES6 库,包括标准类型、JSON 和 Promise API、二进制类型等。但是如 XMLHttpRequest 和 DOM 浏览器 API 则不能直接从沙箱中获得。你需要创建一个<iframe>内部带有<script>标签,在<iframe>内部,你可以编写任何HTML/JavaScript并访问浏览器API。
主线程可以访问 摹客DT文件的层次结构,但是不能访问浏览器 API。相反,iframe 可以访问浏览器 API,但不能访问摹客DT文件的层次结构。主线程和 iframe 可以通过消息传递相互通信。
插件完成工作时通过调用 mockplus.closePlugin() 来关闭主线程。
主线程可以访问 摹客DT文件的层次结构,但是不能访问浏览器 API。相反,iframe 可以访问浏览器 API,但不能访问摹客DT文件的层次结构。主线程和 iframe 可以通过消息传递相互通信。
插件完成工作时通过调用 mockplus.closePlugin() 来关闭主线程。