如何在页面内安全打印外部HTML?的iFrame?

时间:2013-06-15 22:27:09

标签: ruby-on-rails

我正在制作一个API测试工具,它会向外部网址发出请求。

这些外部网址中的大多数返回JSON,但有时HTML也可以返回,在这些情况下我想显示渲染的HTMl。

我的第一个解决方案是将返回的HTML呈现在iFrame中。

<script id="response-body-content" type="application/vnd.response-body">
  <%= raw response_body.gsub("script", "xcriptx") %>
</script>

<iframe id="response-body-preview"></iframe>
<script>
  $(function(){
    var ifrm = document.getElementById("response-body-preview");
    var ifrmDocument;
    if(ifrm.contentWindow) {
      ifrmDocument = ifrm.contentWindow.document
      } else {
      ifrmDocument = ifrm.contentDocument
    }
    ifrmDocument.open()
    ifrmDocument.write($("#response-body-content").text().replace(/xcriptx/g, "script"));
    ifrmDocument.close()
  });
</script>

我必须将script替换为*xscript*以防止外部HTML破坏我的脚本标记容器#response-body-content然后在iFrame中打印我必须将其替换回来。

是否还有其他解决方法可以在页面内打印/呈现(安全)外部HTML?

0 个答案:

没有答案