4

我有一个可以定制的复杂页面,应该嵌入到一些客户的网站中。对于每个客户端,它看起来应该相同,但参数可能略有不同。该页面还包含一个在浏览器中使用插件的自定义对象。

我有两个想法来完成这个:

  1. 使用 iFrame - 所以我只是嵌入我的页面并在查询字符串中传递参数。
  2. 使用远程 JS 文件 - 如 Facebook SDK 和其他工作。在 JS 代码中传递参数。据我了解,我可以在页面和远程 JS 文件上放置一些“父”div,它应该用所需的元素填充父 div。

我应该使用哪一个?每个人的缺点/优点是什么?

谢谢!

4

2 回答 2

2

看看这篇文章,它深入研究了你想要达到的目标。

IFrame 的优点:

如果混搭页面的所有者真的关心安全性,在小部件中运行的恶意脚本,那么 IFRAME 方法是更可取的,因为小部件的脚本对主机页面的访问权限有限,因此不会对页面造成太大伤害它嵌入的地方。

此外,如果小部件的所有者想要控制他/她的小部件的布局和样式,则此方法更可取。由于 IFRAME 本质上是一个单独的网页,因此 mashup 的 CSS 脚本不会对小部件造成太大伤害。

缺点:

它很慢,资源密集[在浏览器上],并且不给混搭页面的所有者以她/他想要的方式设置小部件样式的能力。

于 2013-06-23T12:47:26.360 回答
1

我前段时间遇到过类似的问题。您基本上可以选择三个选项,具体取决于您的插件应该有多安全和灵活。

框架

优点

  • 相当安全 - 您可以向特定用户提供仅应查看的数据,并允许将敏感数据传递给您的服务。包含您的插件的页面将无权访问它。
  • 包含您的 iframe 的页面将无法修改其内容以混淆用户

缺点

  • 减缓
  • 您的插件和页面之间的通信有限(可以通过窗口间发布消息/舷窗来解决,但这并不完美)
  • 页面仍然可能欺骗用户,让他们相信他们看到了您的插件,同时展示自己的副本或使用点击劫持
  • 如果您包含来自 3-rd 方服务器的任何资产,那么您所拥有的安全性就会丢失
  • 限于矩形框

脚本

优点

  • 极其灵活
  • 易于实现各种回调以对页面上的事件做出反应
  • 快速地
  • 可以以许多不同的方式和点与页面的界面集成

缺点

  • 基本上可以通过包含它的页面以任何可能的方式进行修改。您无法控制用户最终会看到什么。

通过您的服务重定向,然后返回

优点

  • 最安全的解决方案

缺点

  • 最难无缝集成
  • 可能无法与使用插件的网站的其他元素交互(因为当用户看到您的插件时,他们不再看到源网站)
于 2013-06-23T13:04:00.633 回答