Javascript - невозможно вызвать метод 'split' из null - PullRequest
0 голосов
/ 23 марта 2012

У меня ошибка javascript на моем сайте, я уверен, что знаю почему, но я не знаю, как это исправить!

вот ошибка:

Uncaught TypeError: Cannot call method 'split' of null

Вот мой код JS:

$(function(e) {
    if (document.cookie.indexOf("login") >= 0) {
        $("a#loggedInUser").html( $.cookie("login").split("|")[0] );
    }
});

Я просто пытаюсь отобразить имя пользователя, хранящееся в куки "login". Теперь я уверен, что ошибка в том, что возвращаемое значение иногда не является строкой, тогда у него нет метода split, поэтому оно вызывает эту ошибку.

Как я могу это исправить? Есть идеи?

Спасибо!

Ответы [ 3 ]

6 голосов
/ 23 марта 2012

Ну, вы можете сделать что-то вроде этого, чтобы установить значение по умолчанию, если значение равно нулю.

var login = $.cookie("login") || "";
$("a#loggedInUser").html(login);

Кроме того, если вы сделаете это, вам может не понадобиться вещь document.cookie.indexOf.

2 голосов
/ 23 марта 2012

Возможно, $.cookie("login") не возвращает правильную строку. Я думаю, проблема в том, что возможно: document.cookie.indexOf("login") >= 0 верно, но $.cookie("login") все еще null или undefined Имеет смысл использовать одну и ту же проверку, например:

$(function(e) {
    var cookie = $.cookie("login");
    if(cookie) {
        $("a#loggedInUser").html( cookie.split("|")[0] );
    }
});
0 голосов
/ 23 марта 2012

Проверьте длину куки.Таким образом, вы подтверждаете две вещи одновременно.

if (document.cookie.indexOf("login") >= 0 && $.cookie("login").length) {
    $("a#loggedInUser").html( $.cookie("login").split("|")[0] );
}
...