我正在制作一个 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?