[英]iframe or JS to embed Rails in 3rd party sites?
我想为Rails应用程序创建可嵌入的小部件,该控件允许用户从外部网站与该应用程序进行交互。
我准备尝试使用iframe来实现这一目标。 但是后来我发现在论坛上有一些回应,似乎暗示iframe不是实现这一目标的最佳方法,而是使用JS嵌入HTML元素。 这让我感到惊讶-我认为iframe会因为CSS和脚本的隔离而成为赢家。
因此,在第三方网站中嵌入(受限)应用程序功能的最佳方法是什么。 这种交互将仅限于登录和一个简单的表单。 JS的iframe是否嵌入了最佳方法? 作为附带的问题,两种方法都需要注意安全问题吗?
我认为使用iframe很难。 这不是整个网站的感觉,就像另一个网站内部的感觉一样,大多数是样式不匹配,或者您有滚动条或响应式布局未正确应用。 所以这是一些优点/缺点列表:
iframe PRO:
iframe CON:
js专业版:
$.load
等替代链接点击)。 JS CON:
我写了一个小小的rails插件,它允许您将rails应用程序作为js框架嵌入到另一个框架中(它仍然是真正的beta版): https : //github.com/Elektron1c97/better_frame 。 该插件处理大多数js问题,例如链接/表单事件并写入浏览器历史记录。
所以..如果您需要运行一个应用程序,而该应用程序应真正嵌入到另一个网站上的商店等网站中,则可以使用js嵌入。
如果您创建一个自定义项目以像soundcloud播放器一样共享, 则可能要使用iframe。
如果您希望第三方网站对与小部件的交互做出反应,那么您绝对应该使用javascript。 尽管可以通过iframe在不同域之间传递消息,但使用起来并不是最方便。 参见https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
至于使用javascript,您可以简单地要求您的用户嵌入一个将渲染您的小部件的javascript文件。 要绕过任何CORS问题,您的小部件应与支持JSONP响应的API进行交互。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.