Как не показывать изображение, если User-Agent обнаруживает Internet Explorer?

#javascript #user-agent

#javascript #user-agent

Вопрос:

У меня есть всплывающее изображение, которое отображается после того, как пользователь переключил вкладки. Я не хочу, чтобы это показывало, находится ли пользователь в Internet Explorer, поскольку я использую API видимости страницы (из документов MDN).

Как я могу проверить, работает ли следующий код, или кто-нибудь знает, работает ли он, поскольку у меня нет Internet Explorer, и я использую Cloud9 AWS, поэтому я не уверен, что это возможно.

  // Do not display popUp for Internet Explorer.
const popUp = document.getElementById("circle-parent");
let ua = window.navigator.userAgent;
let isIE = /MSIE|Trident/.test(ua);

if (isIE) {
  popUp.style.display === "none";
} else {
  popUp.style.display === "block";
}
 

Вот остальная часть моего кода, чтобы увидеть отображение в большем контексте, если это необходимо:

 document.addEventListener("visibilitychange", () => {
  if (document.visibilityState === "hidden") {
    popUp.style.display = "none";
  } else if (document.visibilityState === "visible") {
    popUp.style.display = "block";
  }
});
 

Новый пример для проверки обнаружения функций:

 document.addEventListener("visibilitychange", () => {
  // if (!cookieExists()) {
  if (!document.visibilityState amp;amp; document.visibilityState === "hidden") {
    popUp.style.display = "none";
  } else if (document.visibilityState amp;amp; document.visibilityState === "visible") {
    popUp.style.display = "block";
    // setCookie(cookieName);
  }
  //   }
  //  else {
  //   setCookie(uklFocusCookie)
  // }
});
 

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

1. Не утруждайте себя тестированием для конкретного браузера, поскольку navigator.userAgent строка, как известно, ненадежна. Вместо обнаружения браузера используйте обнаружение функций и просто проверьте, существует ли API, который вы хотите использовать : if(document.visibilityState) .

2. Это интересно знать, спасибо. Я отредактировал свой пост, как вы думаете, он выглядит правильно для отображения: none if !document.visibilityState?

3. Вы пробовали это?

4. Как мне это сделать? У меня есть только Chrome?

5. Вы не можете загрузить IE? Если вы используете Mac, Microsoft предоставляет образы виртуальных машин для тестирования: developer.microsoft.com/en-us/microsoft-edge/tools/vms