#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