Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает eval в IE (https://javascript.ru/forum/misc/3178-ne-rabotaet-eval-v-ie.html)

..::Silence::.. 25.03.2009 10:05

Не работает eval в IE
 
Здравствуйте!
Не работает функция eval в IE, в Опере работает на ура.
success: function(response){
        	//var data = eval('(' + response + ')');
             eval('var data = ' + response);

Вариант, который закомментирован был первоначально - не работал.
Пробовала
var data = eval('(' + response + ');');

тоже не работает.
После поиска проблемы в гугле, нашла решение
eval('var data = ' + response);

работает, но не в IE.

Код:
Код:

{"item":[{"ID":381570,"Code":"082000000001"}],"count":2,"level":2}
Что подскажете?

hogart 25.03.2009 11:08

Имена полей в кавычках — вот что ему не нравится. ФФ тоже, кстати.

Kolyaj 25.03.2009 11:12

С именами полей в кавычках все в порядке, они вполне легальны.

hogart 25.03.2009 11:21

Kolyaj, хм, ваша правда.

..::Silence::.., вставляем адресную строку IE
javascript:eval('var data = {"item":[{"ID":381570,"Code":"082000000001"}],"count":2,"level":2}'); alert(data.count);

Как будто все в порядке?

Kolyaj 25.03.2009 11:37

Я, честно говоря, тоже не вижу проблем.

hogart,
с помощью кавычек в имена атрибутов можно добавлять всякие интересные символы, вроде точек, собачек, двоеточий.

hogart 25.03.2009 11:58

Kolyaj, спасибо, не знал. Хотя не вижу, как бы мне могло это пригодится.

..::Silence::.. 25.03.2009 12:58

Вот и я не вижу ошибок... А IE выдает сообщение: синтаксическая ошибка... указывает на строку с eval =(
Уже мозг кипит..

ZoNT 25.03.2009 13:10

давай ссылку на страничку...

hogart 25.03.2009 13:16

..::Silence::.., IE иногда показывает «куда-то не туда». Попробуйте так:
success: function(response){
             try {
                          eval('var data = ' + response);
             } catch(e) {
                          alert(e);
             }


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


Часовой пояс GMT +3, время: 19:39.