iFrame或远程JS文件

时间:2013-06-23 12:43:19

标签: javascript html iframe

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

我有两个想法要做到这一点:

  1. 使用iFrame - 所以我只是嵌入我的页面并传递参数 请求参数。
  2. 使用远程JS文件 - 如Facebook SDK等     工作。在JS代码中传递参数。据我所知,我可以在页面和远程JS文件上放置一些“父”div,它应该用所需的元素填充父div。
  3. 我应该使用哪一个?每个人的缺点是什么?

    谢谢!

2 个答案:

答案 0 :(得分:2)

看看this article,它深入探讨了你想要达到的目标。

IFrame的优点:

  

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

     

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

缺点:

  

它在浏览器上是缓慢的,资源密集的,并且不会给mashup页面的所有者提供按照他/她想要的方式设置小部件样式的能力。

答案 1 :(得分:1)

我前段时间遇到过类似问题。根据插件的安全性和灵活性,你可以选择三个选项。

IFRAME

<强>优点

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

<强>缺点

  • 插件与页面之间的通信有限(可以通过窗口之间的帖子消息/舷窗来解决,但这并不完美)
  • 页面仍然可能会欺骗用户相信他们看到您的插件,同时展示自己的副本或使用点击顶部
  • 如果您包含来自第3方服务器的任何资产,那么您的安全性就会丢失
  • 仅限于rectengular box

脚本

<强>优点

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

<强>缺点

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

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

<强>优点

  • 最安全的解决方案

<强>缺点

  • 最难无缝集成
  • 可能无法与使用插件的网站的其他元素互动(因为当用户看到您的插件时,他们不再看到源网站)