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