我想在iframe中显示呈现的Handlebars模板,原因有多种(孤立的css,轻松加载资源等)。我将在Javascript中执行此操作。我怎么能这样做?
我尝试过以下方法:
将iframe
元素与src
集合附加到Handlebars文档,然后使用jQuery / Handlebars获取body
的内容,编译它并放置它回到iframe
。
.hbs
文件不同,我更喜欢使用原始hbs
文件。例如,可能会注入一些脚本,这往往会搞砸。 将iframe
元素添加src
设置为about:blank
,对Handlebars文档发出ajax
请求,然后将其编译,然后将其附加到iframe
的身体。
iframe
的{{1}}属性,并且由于未设置资源,因此无法找到资源。如果我在执行此步骤后更改src
,则整个src
会重新加载。答案 0 :(得分:0)
关于Blobs / Bloburls的这篇文章可能会对您有所帮助:https://developer.mozilla.org/en-US/docs/Web/API/Blob
这基本上是如何运作的:
var iframe = document.getElementById('myframe');
// Create a new Blob using your data and handlebars template
var blob = new Blob(['<div>Hello World</div>'], {type : 'text/html'});
// create a URL from your new blob
var url = URL.createObjectURL(blob);
// Set your iframe to show the Bloburl
iframe.src = url;
支持Chrome,SF,FF和IE10(http://caniuse.com/#feat=bloburls)。