pdfjs получил странную синтаксическую ошибку — «?.», которая не работает на Edge, как это исправить?

#javascript #polyfills #pdf.js #pdfjs

#javascript #полизаполнения #pdf.js

Вопрос:

Я использую последнюю версию pdfjs для рендеринга своих документов, но получил синтаксическую ошибку на Edge:

введите описание изображения здесь

На pdf.js строка 2366, обнаружен странный синтаксис — «?», я никогда не видел этого раньше.

введите описание изображения здесь

Исходный код находится в файле api.js строка 1196.

введите описание изображения здесь

Итак, вот мои вопросы:

  1. Что такое «?».
  2. Если это не ошибка, как я могу заставить ее работать на моем Edge?

Моя версия Edge: Microsoft Edge 44.19041.1.0

Кстати, pdfjs отлично работает в Chrome.

Ответ №1:

?. оператор называется необязательной цепочкой. Проверьте MDN

Согласно MDN, он поддерживается в «Edge 80». Для поддержки старых браузеров вы можете выполнить поиск, чтобы использовать полизаполнение.

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

Ответ №2:

Переключение на дистрибутив pdfjs «es5» устранило эту ошибку для меня (на Edge 44.18362.449.0).

Комментарии:

1. Да, я пытался переключить старую версию pdfjs на новую версию и использовать старую «общую» команду. Я исправил эту проблему, используя вместо этого ‘generic-es5’