Выполнение функции Eval приводит к внутренней ошибке

Я делаю анализ нашего приложения с браузером IE Edge, при этом я обнаружил странное поведение. Выполнение функции eval приводит к следующей ошибке. Даже попробовал образец, например:

eval("2");

Ошибка: SCRIPT51: внутренняя ошибка

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


person kalki    schedule 20.07.2015    source источник
comment
Похоже, это проблема браузера, которую трудно обойти. И еще одна причина вообще не использовать eval.   -  person maja    schedule 20.07.2015
comment
Для чего вам нужен eval?   -  person maja    schedule 20.07.2015
comment
@maja, я не могу не использовать eval, наша структура ссылается на eval во многих местах.   -  person kalki    schedule 20.07.2015
comment
Я считаю, что eval("2") является полностью законным использованием, и нет причин, по которым IE выдает такую ​​​​ошибку.   -  person vt.    schedule 12.03.2018


Ответы (2)


Я боюсь, что это проблема браузера IE Edge. Вы ничего не можете сделать, чтобы обойти эту проблему, кроме как избавиться от всех ваших eval вызовов.

Поскольку ваше приложение использует много функций eval (что является плохой идеей), избавиться от них может быть не вариант. Вам придется подождать, пока Microsoft не исправит свой браузер.

Однако, поскольку eval по-прежнему используется многими веб-страницами, я уверен, что ошибка получит высокий приоритет и может быть исправлена ​​до официального релиза.

person maja    schedule 20.07.2015
comment
Или он просто будет отправлен с ошибкой, а eval объявит о плохой идее. Майкрософт работает. Никто не сказал, что без ошибок. - person Stefan Steiger; 21.07.2015

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

функция eval должна быть специально вызвана с контекстом окна (хотя на самом деле не требуется)

Браузер Edge, похоже, имеет некоторые проблемы с контекстом во время оценки.

person kalki    schedule 20.07.2015