我从http://www.gayadesign.com/diy/queryloader-preload-your-website-in-style/下载了QueryLoader插件,以便在显示内容之前预先加载网站。但是,当我访问以下内容时,Chrome控制台会显示以下消息:
未捕获的TypeError:无法调用未定义的方法'toLowerCase'
以下是代码:
问题出在.toLowerCase()行:
getImages: function(selector) {
var everything = $(selector).find("*:not(script)").each(function() {
var url = "";
if ($(this).css("background-image") != "none") {
var url = $(this).css("background-image");
} else if (typeof($(this).attr("src")) != "undefined" && $(this).attr("tagName").toLowerCase() == "img") {
var url = $(this).attr("src");
}
url = url.replace("url(\"", "");
url = url.replace("url(", "");
url = url.replace("\")", "");
url = url.replace(")", "");
if (url.length > 0) {
QueryLoader.items.push(url);
}
});
},
有人知道这条消息出现的原因及其含义吗?
感谢。
答案 0 :(得分:3)
我认为你正在使用最新版本的jQuery ......所以需要将'attr'改为'prop'就是这样.......
getImages: function(selector) {
var everything = $(selector).find("*:not(script)").each(function() {
var url = "";
if ($(this).css("background-image") != "none") {
var url = $(this).css("background-image");
} else if (typeof($(this).prop("src")) != "undefined" && $(this).prop("tagName").toLowerCase() == "img") {
var url = $(this).attr("src");
}
url = url.replace("url(\"", "");
url = url.replace("url(", "");
url = url.replace("\")", "");
url = url.replace(")", "");
if (url.length > 0) {
QueryLoader.items.push(url);
}
});
},