0
我正在使用Chrome應用,並且我有一個保存在應用沙箱文件系統中的腳本文件。 (它通過URL filesystem:chrome-extension_****/Persistent/script.js
在Chrome應用沙盒中加載腳本文件
我能使用Chrome的FileSystemAPI讀取主應用程序窗口中的文件可用。但是,我需要它是在沙盒頁面訪問和執行。
我有在我的清單如下 -
"sandbox": {
"pages": ["sandboxed_page.html"],
"content_security_policy": "sandbox allow-scripts;"
},
而且我使用的頁面是這樣的:
<iframe id="sandbox_frame" seamless="seamless" src="sandboxed_page.html" sandbox="allow-scripts"></iframe>
我嘗試在主應用程序窗口中加載文件,使用window.URL.createObjectURL()
將其轉換爲blob:URL,並通過postMessage()
將此URL傳遞給沙箱。在沙箱中,我試圖將URL加載到<script>
元素中。我得到一個錯誤,說Not allowed to load local resource: blob:chrome-extension%3A//...
另一個選項(這是工作)加載主應用程序中的script.js的內容,並通過postMessage()發送整個字符串。不確定這是一個好主意,因爲script.js可能會變得很大。
我做錯了什麼,或者是在Chrome安全策略禁止的沙箱中加載本地腳本?
我經歷了https://developer.chrome.com/apps/app_external,但沒有提及將外部資源發送到沙箱。
它看起來不像你在沙箱CSP中設置了一個備用腳本src,所以我認爲你可以像在主窗口中一樣通過