編寫插件之前,我們需要了解插件的運行機制以便進行開發。
摹客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() 來關閉主線程。