0

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

大多数这些外部 url 返回一个 JSON,但有时也可以返回一个 HTML,在这些情况下,我想显示呈现的 HTMl。

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

<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?

4

0 回答 0