IE10 выбрасывает ошибку JavaScript (SCRIPT1004) - PullRequest
0 голосов
/ 30 ноября 2018

Я замечаю странное поведение с IE10.

У меня есть файл javascript с таким содержанием:

var x = 1;

//@deprecated, use static version
var y=function(interval){
    console.log(interval);
};

Файл закодирован в формате UTF-8.

У меня есть HTML-файл с метатегом

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Если предыдущий файл включен с помощью тега <script>, он работает.

Если я вместо этого загружаю файл, создавая элемент скрипта с помощью javascript и добавляя скрипт в заголовок:

var script = document.createElement('script'),
head = document.getElementsByTagName('head')[0];

script.type= 'application/javascript';
script.src = ''; // omissis

head.appendChild(script);

Работает для IE11, но не для IE10: выдает ошибку

(SCRIPT1004): expected ';'

Странно то, что номер строки и столбца ошибки указывают на запятую после //@deprecated: но это должен быть комментарий, он не должен выдавать никаких ошибок.

Кстати: JavaScript, который создает тег сценария и добавляет его к заголовку, работает для всех файлов JavaScript и для всех браузеров.Кажется, он сломан, только если внутри файла есть комментарий //@deprecated.

Спасибо, ура

1 Ответ

0 голосов
/ 03 декабря 2018

Хорошо, благодаря @ Deepak-MSFT я обнаружил ошибку.

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

В этом скрипте был код / ​​ @ cc_on! @ /, который активирует флаг условной компиляции для браузера IE (<11).Вот еще один вопрос переполнения стека, связанный с этим: </p>

что этот комментарий / * @ cc_on! @ * / 0 делает внутри оператора if в javascript?

IfЯ закомментирую строку, проблема исчезнет.

Благодаря @ Deepak-MSFT, потому что он попытался воспроизвести проблему, выполнив указанные мной действия - это была моя ошибка, потому что я описал минимальные шаги длявоспроизведите проблему, не выполняя тест самостоятельно.

...