Как заставить IE игнорировать участок кода JS?

Есть код:

  const links = document.querySelectorAll('.nav-link');
  const sections = [... document.querySelectorAll('.forJS')];
  const callback = (entries) => {
    links.forEach((link) => link.classList.remove('active'));
    const elem = entries.find((entry) => entry.isIntersecting);
    if (elem) {
      const index = sections.findIndex((section) => section === elem.target);
      links[index].classList.add('active');
    }
  }

  let observer = new IntersectionObserver(callback, {
    rootMargin: '0px',
    threshold: 0.5
  });

  sections.forEach((section) => observer.observe(section));

IE ругается на вторую строчку кода(SCRIPT1002: Синтаксическая ошибка), подcвечиваются квадратные скобки [], затем еще как какую то (если удалить ту на которую он ругался до этого) и т.д. Как можно заставить его игнорировать этот участок кода? Пытался делать так:

const isIE = /*@cc_on!@*/false   || !!document.documentMode;//Определяем IE ли это
if(!isIE){//Если не IE выполняем участок кода

  ...Весь код...

};

Что можно сделать еще?


Ответы (2 шт):

Автор решения: Дмытрык

Где-то, когда-то нашел - выручает

    function browserCheck() {
      const ua = navigator.userAgent.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
      let browser = '';
      if (navigator.userAgent.match(/Edge/i) || navigator.userAgent.match(/Trident.*rv[ :]*11\./i)) {
        browser = 'msie';
      } else {
        browser = ua[1].toLowerCase();
      }
      document.body.classList.add(browser);
      return browser;
    }
→ Ссылка
Автор решения: Hi_TecH

Если вы используете php, можно сделать так. Выносим этот код, на который IE ругается в отдельный файл. Затем следующий скрипт на php, который определяет, является ли текущий браузер IE и затем обычный условный оператор. Если у пользователя не IE загружаем скрипт, иначе нет.

$ie = htmlentities($_SERVER['HTTP_USER_AGENT'], ENT_QUOTES, 'UTF-8');
<?php if (preg_match('~MSIE|Internet Explorer~i', $ie) || (strpos($ie, 'Trident/7.0') == false && strpos($ie, 'rv:11.0') == false)) {
?>
<script src="js/ourScript.js"></script>
<?php };?>

UPD. Можно и без php, но опять таки в отдельный файл наш скрипт и таким образом подключаем:

<!--[if !IE]-->
 <script src="js/ourScript.js"></script>
<!--[endif]-->
→ Ссылка