我试图了解是否可以使用ICanHaz或Handlebars来构建Google文档插件的侧边栏。然而,事实证明Caja正在从我的脚本标签中剥离实际的HTML。有什么办法可以防止这种情况发生吗?
我们只是说我的Handlebars模板是这样的:
<script id="user" type="text/x-handlebars-template">
<li>
<p class="name">Hello I'm {{ name }}</p>
</li>
</script>
然后,目前,在运行时它是这样的:
<script id="user-caja-guest-0___" data-caja-type="text/x-handlebars-template"></script>
所以,即使我能够使用$('#user").html()
查找它,它也只会给我一个空模板。有没有办法阻止Caja这样做?
答案 0 :(得分:2)
Caja目前不支持在任何情况下保留<script>
元素的内容,并且还假设所有脚本文本都是JavaScript。这是可能的,但不值得支持。如果您需要此功能,请file a request for it。
答案 1 :(得分:2)
这似乎适用于带有Caja的Handlebars.js。
模板标记(无脚本标记+隐藏div)
<div id="entry-template" class="header" style="display: none">
<h1>{{title}}</h1>
<div class="body">
{{body}}
</div>
</div>
然后你的脚本
var source = $("#entry-template").html();
var template = Handlebars.compile(source);
var context = {title: "My New Post", body: "This is my first post!"};
alert(template(context));
我们得到了
<h1>My New Post</h1>
<div class="body">
This is my first post!
</div>