2014-01-20 6 views
0

я свел проблему к ее скелету с помощью JSFiddle: http://fiddle.jshell.net/ZuV7J/IE10 не разобрать JSON правильно

Это правильно разбирает простой JSON строку в Firefox и Chrome, но возвращает пустой объект (независимо от JSON строка) в IE8, IE9 и IE10. Мне еще предстоит попробовать с IE11.

Это происходит независимо от того, загружаю ли я библиотеку JSON2.js в Crockford.

+0

Что произойдет, если вы сделаете переменное локальное, то есть использовать 'уаг событие ...' вместо этого? Кроме того, какое выражение точно создает пустой объект? Вы говорите, что 'alert (event.var)' печатает пустой объект? Это маловероятно. –

+0

Он работает в консоли разработчика для IE9 и 10, но вы правы, когда страница загружается на этот скрипт, он показывает undefined. – incutonez

+0

В консоли разработчика он просто показывает {} для меня! Просто протестирован с IE11 и получил тот же результат. –

ответ

3

В Internet Explorer window.event

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

Нельзя назначать.

Без var ваш код event = JSON.parse('{"var":"value"}'); пытается присвоить window.event, что недопустимо.

Изменения использовать другое имя переменного или событие префикса с вар, так что ваш код читает: var event=JSON.parse('{"var":"value"}');

http://fiddle.jshell.net/ZuV7J/1/

0

Короткий ответ: Не используйте имя переменной «событие» без объявления локально вар :-)

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