Ошибка 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. Есть дополнительная документация по этой теме здесь: Предпосылки бриза

Другие вопросы по тегам