【发布时间】:2012-07-20 14:15:17
【问题描述】:
我正在为我开发的网站使用 jQuery 模板,它们在 Chrome、Safari 甚至 IE9 上运行良好,但这些模板无法在 Firefox 上呈现。我在外部加载它们,并且 $.get 被处理(我已经检查了 Firebug,get 通过并拉出正确的文件),但随后我看到一个空白页面并检查 html 显示 body 元素仅包含页脚(包含在 html 中),但显示:无,这是它应该的样子,所以 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 上工作,我也不需要支持它,所以样式不起作用(使用 Opera 不支持的 LESS 和严格用于 IE 的 css 文件),但它仍然加载模板而不一个问题。
【问题讨论】:
-
你对 $.get 请求做过调试吗?它抛出错误吗?该错误可能不会出现在 firebug 中,您应该在其上使用
.fail()回调。 -
$.get 返回代码 200 或代码 304,Firebug 实际上允许您查看“获取”的文件,这是完全正确的
-
是的,但这并不能告诉你 jQuery 是否正确解析了响应。
-
在 .error() 回调和 .done .fail() 中都添加了,但它没有进入其中任何一个。编辑:当然不是同时
-
接下来要测试的是确认您传递给 $.tmpl() 的值,以确保它在 Firefox 中与其他浏览器相同。
标签: javascript jquery templates firefox jquery-templates