Скрипт работает только в FireFox
Добрый день, столкнулся с проблемой, что написанный скрипт корректно работает только в браузере FireFox.
В IE, Chrome не работает. С чем это может быть связанно? Если есть какие либо решения подскажите пожалуйста. Можно исправлять прямо в скрипте представленном ниже. Если не верно оформлено сообщение, то извините, первый раз обращаюсь. Содержимое файла 3.html: <?xml version="1.0" encoding="UTF-8"?> <!-- Лабораторная работа №3 --> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Лабораторная работа №3</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta charset="UTF-8" /> </head> <body onunload = "exit()"> <h1>Лабораторная работа №3</h1> <div id="msg"></div> <script src="3.js"></script> </body> </html> Содержимое файла 3.js: /* * Лабораторная работа №3. */ function getCookie(name) { let matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; } var newLoadTime = new Date(); var s = getCookie('visitTime'); var visitTime = s && s !== "NaN"? Number.parseInt(s): 0; s = getCookie('visitCounter'); var visitCounter = s? Number.parseInt(s): 0; var msg = document.getElementById("msg"); if(visitCounter && visitTime) { var aver = Math.round(visitTime / visitCounter), min = Math.trunc(aver / 60000), sec = Math.trunc(aver % 60000 / 1000); msg.innerHTML = "Среднее время Вашего присутствия на нашей странице " + min + " мин. " + sec + " сек."; } else msg.innerHTML = "Дорогой пользователь! \n\ Мы рады приветствовать Вас на нашей станице!"; function exit() { var newUnloadTime = new Date(); visitTime = visitTime + (newUnloadTime - newLoadTime); visitCounter = visitCounter + 1; document.cookie = "visitTime=" + visitTime + "; max-age=180"; document.cookie = "visitCounter=" + visitCounter + "; max-age=180"; } |
Arifureta,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Цитата:
Цитата:
|
Arifureta,
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Лабораторная работа №3</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta charset="UTF-8" /> </head> <body onunload = "exit()"> <h1>Лабораторная работа №3</h1> <div id="msg"></div> <script> var time = localStorage.visitTime; time = time ? Number(time) : 0; var count = localStorage.visitCounter; count = count ? Number(count) : 0; var msg = document.getElementById("msg"); if (count && time) { var aver = Math.round(time / count), min = Math.trunc(aver / 60000), sec = Math.trunc(aver % 60000 / 1000); msg.innerHTML = `Это Ваше ${count + 1} посещение страницы.<br> Среднее время Вашего присутствия на нашей странице ${min} мин. ${sec} сек.`; } else msg.innerHTML = `Дорогой пользователь!<br> Мы рады приветствовать Вас на нашей станице!`; function exit() { localStorage.visitTime = time + performance.now(); localStorage.visitCounter = ++count; } </script> </body> </html> |
Спасибо огромное Вам
|
Часовой пояс GMT +3, время: 23:58. |