2010-01-28 2 views
4

Я получаю JavaScript (prototype.js) Ошибка: Неожиданный маркер НЕЗАКОННО в этой строке кода:Неожиданный токен НЕЗАКОННО Javascript ошибка в Google Chrome

newFriend = new friend(
    response[0][email protected][0]._id, 
    response[0][email protected][0]._nickName, 
    response[0][email protected][0]._profilePicture, 
    response[0][email protected][0]._tagLine, 
    response[0][email protected][0]._isInvite, 
    response[0][email protected][0]._confirm 
); 

объект ответа выглядит следующим образом:

[{"@type":"[Lcom.photoviewer.common.model.ThinUser;","@items":[{"_id":"000.060318.05022007.00263.0067ur","_nickName":"siraj","_country":null,"_currentStorageLimit":5000000000,"_currentStorage":0,"_currentFileCount":0,"_profilePicture":null,"_tagLine":null,"_membershipLevel":0,"_isRejected":false,"_isInvite":false,"_confirm":false,"_verifiedOn":1170716666000}]}] 

Это происходит только в браузере Google Chrome и, возможно, в других веб-браузерах. Он отлично работает в Firefox.

ответ

8

Попробуйте вместо этого:

newFriend = new friend(
    response[0]["@items"][0]._id, 
    response[0]["@items"][0]._nickName, 
    response[0]["@items"][0]._profilePicture, 
    response[0]["@items"][0]._tagLine, 
    response[0]["@items"][0]._isInvite, 
    response[0]["@items"][0]._confirm 
); 

Я уверен, что @ это дает вам проблему.

Для странных символов всегда можно использовать нотацию ["@items"] вместо (dot) нотации [email protected].

0

Имущественные имена, содержащие @ и точечные обозначения, несовместимы в Chrome. Вместо этого используйте square bracket notation (вы уже делаете, когда строите объект).

+5

Вау, я удивлен, что это работает где угодно! '@' очень определенно не допускается в JS-идентификаторе (согласно ECMA-262-3 и др.). – bobince

Смежные вопросы