如何在iframe中显示呈现的Handlebars模板

时间:2014-04-28 01:27:25

标签: javascript jquery iframe handlebars.js

我想在iframe中显示呈现的Handlebars模板,原因有多种(孤立的css,轻松加载资源等)。我将在Javascript中执行此操作。我怎么能这样做?

我尝试过以下方法:

  1. iframe元素与src集合附加到Handlebars文档,然后使用jQuery / Handlebars获取body的内容,编译它并放置它回到iframe

    • 这里的问题是DOM与静态.hbs文件不同,我更喜欢使用原始hbs文件。例如,可能会注入一些脚本,这往往会搞砸。
  2. iframe元素添加src设置为about:blank,对Handlebars文档发出ajax请求,然后将其编译,然后将其附加到iframe的身体。

    • 此处的问题是资产在从服务器获取资源时使用iframe的{​​{1}}属性,并且由于未设置资源,因此无法找到资源。如果我在执行此步骤后更改src,则整个src会重新加载。

1 个答案:

答案 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;

http://jsfiddle.net/83PQs/

支持Chrome,SF,FF和IE10(http://caniuse.com/#feat=bloburls)。