【问题标题】:3rd party applications inside iFrames?iFrame 内的第三方应用程序?
【发布时间】:2011-05-01 07:19:25
【问题描述】:

我即将构建一个 Web 应用程序,我想允许其他开发人员使用他们自己的应用程序对其进行扩展。

我应该使用像 Facebook 这样的 iFrame 吗?

这是一个好习惯吗?

是否有其他替代方案可以让其他开发人员扩展我的应用程序(即对于用户而言,它看起来像是来自我的应用程序)。

具体来说:

我希望开发人员能够编写嵌入到我的 Web 应用程序中的应用程序。例如。如果我的应用程序上有一个文件,他们可以为用户提供一种与该文件交互的方式。也许是一个让用户预览文件的“预览”应用程序。

另一个应用程序可能会绘制所有用户文件的思维导图树视图。

最好的方法是什么?

  • iFrame + Restful API 在后端进行数据交换?
  • 让他们在我的 Web 应用程序的后端 + 前端 + html + css 上插入 javascript?
  • 其他选择?

【问题讨论】:

    标签: javascript python html ruby


    【解决方案1】:

    这取决于您所说的“扩展”是什么意思。当您将 iFrame 用于第 3 方时,可能是从与主机页面不同的域出售的,那么您会受到跨域问题的限制,并且无法与这些 iFrame 的内容进行交互。如果这对您来说不是问题,那么您可以继续尝试该策略,但我看不出仅添加没有互操作性的 iFrame 是如何“扩展”您的 Web 应用程序的。

    【讨论】:

    • 但这不是 Facebook 正在做的吗?他们如何将 Facebook 域中的数据提供给 iFrame 域?通过后端? Facebook 对服务器端执行 ajax -> 对 iFrame 应用程序的 restful API -> iFrame 应用程序显示内容并且用户在 iFrame 上看到它?。
    【解决方案2】:

    如果您的意思是“嵌入”而不是“扩展”,并且您只是希望人们在页面上放置一个小框,仅此而已,那么 iframe 应该没问题。

    但是,如果您想要双向通信或混搭性——而不是“不透明的 HTML 块并希望获得最佳”通信——那么 JavaScript 或 REST API 可能是更好的调用。

    更多的细节会让答案更容易。如果您需要的功能是嵌入式广告或 stackoverlflow 风格,那么 iframe 就可以工作,如果功能更类似于 Google 地图,那么某种 API 会更好。

    【讨论】:

    • 请阅读对 Robusto 回答的评论。 Facebook 不就是这样处理 iFrame 应用程序的吗?这样,iFrame 应用程序仍然可以与 Facebook 通信,但在它自己的域中,因此他们无法破坏 Facebook 上的任何内容。如果 Facebook 让人们在 Facebook 上运行 Javascript,这不是安全风险吗?你是这个意思吗?
    猜你喜欢
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2018-11-10
    • 2011-04-25
    • 1970-01-01
    相关资源
    最近更新 更多