Ошибка exportMetadata в IE8
Я получаю сообщение об ошибке на машинах под управлением IE8 в функции proto.exportMetadata. Msgstr "Ошибка: неожиданный вызов доступа к методу или свойству". Я использую версию 1.2.1 в настоящее время при нажатии этой ошибки. Я постараюсь дать больше информации, если это необходимо. Благодарю.
Изменить Я обновился до версии 1.3.5 и столкнулся с новой проблемой с настройками предотвращения выполнения данных (DEP) на моей машине с IE8. На компьютере установлена ОС Windows XP Pro с пакетом обновления 3 и работает IE8. К сожалению, этого не происходит при работе IE10 с режимами браузера IE8, это происходит на компьютере с IE8.
2 ответа
У меня такая же проблема, даже с Breeze 1.3.6. В IE8 exportMetadata вызывает ошибки "Неожиданный вызов метода или доступа к свойству".
Для меня проблема временная, но все же очень воспроизводимая. Я могу просто перезагрузить свое приложение, и иногда оно работает нормально, иногда я получаю ошибку JavaScript, а иногда вкладка IE полностью вылетает с диалоговым окном "Internet Explorer перестал работать".
Ошибка на самом деле выдается из внутренней функции JSON.stringify. Обходной путь - удалить собственный объект JSON и использовать вместо него json2.js:
<head>
<!--[if lt IE 9]>
<script>
// Remove IE8's native JSON object. It doesn't work with Breeze.
JSON = undefined;
</script>
<script src="json2.js"></script>
<![endif]-->
</head>
Вы можете скачать последнюю версию json2.js по ссылке Raw на его странице GitHub.
Кроме того, если вы собираетесь использовать json2.js, у Breeze есть ошибка при вызове JSON.stringify (строка 5494 файла breeze.debug.js в v1.3.6). __config.stringifyPad
должен быть третьим аргументом для stringify, а не вторым. Вам нужно будет вставить второй аргумент null
так что площадка становится третьим аргументом. Я отправил запрос на удаление, надеюсь, это исправлено в Breeze 1.3.7.
Я не уверен, что Breeze передает в JSON.stringify, чтобы нативная реализация упала. Было бы неплохо докопаться до сути, но сейчас я использую этот обходной путь.
Изменить: ряд специфических проблем IE8 были исправлены в Breeze 1.3.6. Вы можете попробовать это тоже.
Если вы используете IE8, вам нужно использовать шайбу ES5, например: ES5 Shim. Есть дополнительная документация по этой теме здесь: Предпосылки бриза