我们正在创建一个 Web 应用程序(使用 Sencha Ext JS),这个应用程序需要处理成为主应用程序一部分的 AddIn Web 小程序。但是我们需要安全性,因为我们不会编写所有的插件,并且我们不希望插件能够在我们的主应用程序的上下文中执行操作。
如果 AddIn 在我们的主应用程序网页内的 IFrame 中打开,这将很容易。但我们不能仅限于此。AddIn 可能不需要 IFrame。它可能还需要几个。这些可能是动态创建的,也可能在 AddIn 的生命周期内存在。
插件有时可能需要显示一个弹出窗口。
所以,我的问题是,在沙盒设置中:
- 我在哪里/如何运行插件的 JavaScript?我需要在 AddIn 代码上调用 initialize() 并让该代码运行 - 在某种沙箱中。
- 如何让 AddIn 能够显示弹出窗口(不是一个独特的浏览器窗口,而是在主浏览器中呈现在我的内容上的窗口)?
- 我认为动态创建 IFrame 很容易 - 我只是重新渲染带有 IFrame 的主窗口???
- AddIn 可能位于不同的域中。那么CORS还是JSONP?我们可能需要更新的浏览器,所以我倾向于 CORS。
- 我忘记了什么?
更新:我了解到目前无法使用坚如磐石的沙箱。我的问题是我能做什么?即使是一点也比没有好。以及我应该如何构建它,以便当浏览器确实提供真正的沙盒时,我将被设置为轻松利用它。
谢谢 - 戴夫