【发布时间】:2013-08-20 04:24:48
【问题描述】:
我有一个使用 jquery 1.7.2 的 html 页面。在页面中,我有一个这样的脚本标签。
<script id="navigation-template" type="text/x-handlebars-template"></script>
在页面下方,我正在使用 javascript 使用以下函数将我的车把模板加载到脚本标记中:
loadTemplate: function( templateId, elementId ) {
if ( !elementId ) {
elementId = templateId;
}
$('#'+elementId).load('/my/path/templates.html #'+templateId);
}
这在 chrome、eclipse 浏览器甚至 IE 9 中都可以正常工作,但在 Firefox 中似乎不太适用。
我已经调试并且加载调用成功完成并返回了内容,但是对$('#navigation-template').html()的调用给出了一个空字符串。
我在脚本标签中也有内容并调用了加载,发现它在.load 调用后被空字符串替换。
最后,如果我手动执行$('#navigation-template').html( "hello" );,我看到脚本标签的.html() 已更改。
如果我使用简单的 ajax 获取,那么我将不得不解析它并获取给定的元素,而不是依赖加载来为我获取元素。
如何在 Firefox 中解决这个问题?
【问题讨论】:
-
为什么要把它放到script标签里,难道不是从ajax(load)拿到模板就直接编译吗?
-
人力资源部。我会调查的。将它放入脚本标签的好处是我可以只使用
load()函数并且一切都完成了,然后当我想稍后应用模板时我可以。为了现在编译它,我必须以不同的方式加载它(提供一个成功处理程序来手动加载和处理它)但这可能是答案...... -
@Watson 感谢您指出显而易见的解决方案。我偶尔只使用javascript,所以有时我需要它。将您的评论作为答案,我会接受。
标签: javascript jquery firefox