Как запретить meta - http-equiv="refresh"?
HTML-код типа
<meta http-equiv="refresh" content="10;URL=http://site.net">заставляет перегрузиться страницу (в данном примере) через 10 секунд. Можно ли с помощью javascript пресечь эту перезагрузку? Как известно, в теге meta content устанавливает значение атрибута, заданного с помощью name или http-equiv, а http-equiv предназначен для конвертирования метатега в заголовок HTTP. Но я не пойму, чей это атрибут "refresh"? То есть, можно ли его очистить, убить напрочь, чтобы перезагрузка не произошла? Решение с обработкой события onbeforeunload мне видится бестолковым. |
Цитата:
|
Маэстро,
Решали подобную задачу путём заворачивания в noscript <noscript> <meta http-equiv="refresh" content="10;URL=http://site.net"> </noscript> Насчёт JS решения не в курсе |
Цитата:
К сожалению, как только сделано DIV.innerHTML = '<meta http-equiv="refresh" content="10;URL=http://site.net">';, так браузер запускает таймер до взрыва... |
Цитата:
Да это работает. Проверил только что в IE 11 и FireFox. К моему удивлению это не работает в Gooogle Chrome. :( |
Маэстро,
Noscript - это не запрет выполнения сценария. Содержимое тега отобразится / сработает, если браузер не поддерживает скрипты или они отключены. Значит, если подключены, то содержимое игнорируется. MDN Насчёт Chrome пишут, что это известный баг. Иногда это "лечат" путём перезагрузки, но в Вашем случае, получается, это не выход совсем. |
Цитата:
|
Цитата:
Цитата:
Цитата:
Кстати, в одном из продуктов Гугла есть именно эта уязвимость. Но в Гугл я писать не буду. |
Цитата:
|
как вариант
<meta http-equiv="refresh" content="10;URL=http://site.net"> <script>window.stop();</script>:D |
Часовой пояс GMT +3, время: 14:12. |