Следующий код показывает предупреждение, если пользователь использует IE11 и устанавливает cookie, срок действия которого истекает через 24 часа:
var cookieExists = document.cookie.indexOf('ie11_cookie') >= 0;
// Function for checking if IE11 or bellow
function isIE() {
return window.navigator.userAgent.match(/(MSIE|Trident)/);
}
// Function for setting a cookie
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
// If the user is using IE11 and no cookie exist, show the alert and set a cookie
if (isIE() && !cookieExists) {
window.alert("Your browser is outdated!");
// Setting a cookie with an expiry date of 1 day
createCookie('myCookie', 'ie11_cookie', 1);
}
Скрипт работает, но сейчас я пытаюсь преобразовать его в класс.
Я пробовал это:
var cookieExists = document.cookie.indexOf('ie11_cookie') >= 0;
class ieAlert {
// Method for checking if IE11 or bellow
isIE() {
return window.navigator.userAgent.match(/(MSIE|Trident)/);
}
// Method for setting a cookie
createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
}
// If the user is using IE11 and no cookie exist, show the alert and set a cookie
if (ieAlert.isIE() && !cookieExists) {
window.alert("Your browser is outdated!");
// Setting a cookie with an expiry date on 1 day
createCookie('myCookie', 'ie11_cookie', 1);
}
module.exports = ieAlert;
Но если я запускаю код, я получаю следующую ошибку в консоли:
Uncaught TypeError: ieAlert.isIE не является функцией
Я также не хочу использовать синтаксис ES6, так как скрипт должен работать в IE11, а я не использую Babel.
Что я делаю не так? Какое будет правильное решение?