什么是更好的?使用iframe或类似jquery的东西来加载外部网站中的html文件

时间:2012-09-10 09:39:35

标签: javascript jquery html iframe external

我希望我的客户在我的网络应用程序上创建自己的HTML,然后将我的代码复制并粘贴到他们的网站上,以便在自定义大小的位置显示结果,并在页面中显示他们想要的其他选项。我的Web应用程序的输出HTML包含HTML标记和JavaScript代码(例如,使用javascript创建的Web图表)。

我找到了两种方法。一个使用iframe,两个使用jquery .load()

什么是更好,更安全?还有其他办法吗?

1 个答案:

答案 0 :(得分:2)

iframe更好 - 如果您正在运行Javascript,那么该脚本不应该在与您的用户站点相同的上下文中执行:您要求在此处具有一定程度的信任,用户不需要加入to,你的代码都很好地沙箱,所以你不必担心父文档的样式和脚本。

作为一名前端网络开发人员和网站管理员,我经常自己决定在iframe中使用第三方代码。以下是我这样做的一些原因:

  • 脚本将使用文档的DOM。一旦第三方小部件自行为我们的网站上的img标签和CSS中使用的每个PNG引入了针对IE的错误和性能密集的PNG修复黑客。
  • 许多脚本覆盖全局onload事件,抢夺其初始化触发器的其他脚本。
  • 阅读本地会话信息并将其发送回自己的存储库。
  • 加载任意数量的资源并执行CPU密集型流程,中断并减轻我网站的核心体验。

以上都是您可能在上面看到的第三方的近视或恶意的例子,但重点是作为您服务的一个用户,我不需要赌博。如果我把你的代码放在iframe中,我知道它可以愉快地做自己的事情,而不是搞砸我的网站或用户。我也可以选择将加载和执行延迟到我选择的时刻(通过在选择的时刻动态加载iframe)。

根据您的方便而不是用户的争论:

  • 您不必担心与XSS相关的任何信任问题。您可以诚实地告诉您的用户,他们不会因为运行您的工具而面临任何不必要的担忧。
  • 您无需额外努力规避CSS和JS对用户网站的影响。