0

http://www.gayadesign.com/diy/queryloader-preload-your-website-in-style/からQueryLoader プラグインをダウンロードして、コンテンツを表示する前にサイトをプリロードしました。ただし、Chrome コンソールにアクセスすると、次のメッセージが表示されます。

Uncaught 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);
        }
    });
},

このメッセージが表示される理由とその意味を知っている人はいますか?

ありがとう。

4

1 に答える 1

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);
        }
    });
},
于 2013-09-15T22:04:37.107 に答える