我有一个使用jQuery 1.7.2的HTML页面。在页面内,我有一个像这样的脚本标签。jQuery的加载内容到Firefox的脚本标记
<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);
}
这在铬做工精细,月食浏览器,甚至IE 9,但似乎在Firefox中南下。
我已调试并且加载调用成功完成并返回内容,但$('#navigation-template').html()
的调用给出了一个空字符串。
我也在脚本标记中有内容,并调用负载,并在调用.load
后看到它被替换为空字符串。
最后,如果我手动执行$('#navigation-template').html("hello");
,我发现脚本标记的.html()
已更改。
如果我去一个简单的ajax得到然后我将不得不解析它并得到给定的元素,而不是依靠加载来获取我的元素。
如何在firefox中解决这个问题?
为什么你需要把它放到script标签,你就不能编译模板一旦你得到它从ajax(负载)? – dezman
人。我会研究这一点。将它放入脚本标签的好处是我可以使用'load()'函数,并且完成了所有的工作,然后当我想稍后应用模板时,我就可以。为了现在编译它,我必须加载它有点不同(提供一个成功处理程序来手动加载和处理它),但这可能是答案... – digitaljoel
@Watson感谢您指出明显的解决方案。我偶尔只有javascript,所以有时我需要。把你的评论作为答案,我会接受它。 – digitaljoel