我正在为我开发的网站使用jQuery模板,它们在Chrome,Safari甚至IE9上运行得非常好,但模板不会在Firefox上呈现。我正在外部加载它们,并且$ .get被处理(我已经检查过Firebug,获取通过并拉出正确的文件),但后来我打了一个空白页面并检查html显示了body元素只包含页脚(包含在html中),但是display:none,它应该是这样的,所以javascript运行完成(因为页脚隐藏在loadtemplate函数中)。似乎Firefox只是在跳过$ .tmpl()调用。这是功能:
var loadTemplate = function(templateName){
$.get(templateName, function(template){
$.tmpl(template).appendTo("body");
});
};
var loadHomePage = function(){
history = [];
clearPage();
loadTemplate("./templates/home.tmpl");
current_page = "./templates/home.tmpl";
}
var clearPage = function(){
$(".page-content").remove();
$(".page-header").remove();
$("#popup-container").remove();
$(".page-footer").hide();
};
非常感谢任何帮助,如果需要,我可以跟进更多代码。
编辑:甚至可以在Opera上工作,我不需要支持它,因此样式不起作用(使用LESS,Opera不支持,css文件严格用于IE),但它仍然加载模板一个问题。答案 0 :(得分:0)
请求模板可能会被某些浏览器以HTML格式处理,从而导致模板损坏。尝试将数据类型设置为“text”,以便所有浏览器正确返回未修改的文本。
$.get(templateName, function(template){
$.tmpl(template).appendTo("body");
}, "text");