Мета-обновление не работает?
У меня есть страница, использующая что-то вдоль строк
<meta http-equiv="refresh" content="0;url=http://example.com/" />
но для определенных пользователей на определенной рабочей станции это не работает. Это в IE. Что-то не так с файлами cookie или с настройками где-нибудь, что может привести к сбою? Я никогда не слышал об этом.
Ответы
Ответ 1
Проблема в том, что когда IE видит это:
<meta http-equiv="refresh" content="0;http://www.example.com" />
он ожидает, что атрибут содержимого будет содержать число. Единственный раз, когда IE будет проверять URL-адрес, является ли атрибут content "URL =", поэтому перенаправление, наиболее востребованное во всех браузерах, таково:
<meta http-equiv="refresh" content="0;URL=http://www.example.com" />
Вышеприведенный пример будет перенаправлен не сразу, но если вы измените 0 на другой номер, он будет ждать много секунд. Надеюсь, что все это имеет смысл, оно должно работать нормально, но я все же думаю, что моя первая идея была лучшей.
Ответ 2
В Internet Explorer установлен параметр безопасности, который не позволяет обновлять метатег. Он находится на вкладке "Безопасность", затем выберите "Пользовательский уровень" и "Обновление метатега" в разделе "Разное". Если это отключено, это остановит работу мета-обновления.
Помимо возможности выборочно отключить его, он автоматически отключается, если вы установите уровень безопасности IE на "Высокий" [наблюдаемый в IE9].
Ответ 3
Это действительно старая версия IE? если да, попробуйте:
<meta http-equiv="refresh" content="0;url=http://example.com/"> </meta>
Требуется пробел. Редактор HTML будет жаловаться, но просто игнорирует его.
Ответ 4
Тег META не является пустым тегом и не имеет закрывающего тега в HTML, только в XHTML. (Если вы действительно отправляете XHTML, это может работать некорректно в более старых версиях IE, есть только обходные пути для отправки XHTML в более старые версии IE.)
Try:
<meta http-equiv="refresh" content="0;url=http://example.com/">
W3 Schools META Tag Описание
Вы также можете попробовать:
- Проверка основных и второстепенных версий IE. Вы можете сделать это в меню справки- > о меню.
- IE исторически получил путаницу по именам файлов и MIMEtypes. Убедитесь, что вы отправляете свой HTML в качестве файла расширения htm или html и что эти типы файлов настроены на вашем сервере для отправки текста /html mimetype.
- Убедитесь, что ваш сервер не отправляет конфликтующий HTTP-заголовок метаобновления.
Ответ 5
Проверьте это решение. Он одновременно обрабатывает как javascript, так и мета-обновление:
Мета-обновление и javascript
Ответ 6
Просто дикое предположение: возможно, на тех машинах, где перенаправление не работает, есть некоторые рекламные блоки.
Не могу думать о какой-либо другой причине, почему эта общая техника работает на некоторых машинах, пока она не работает на других для вас.
Ответ 7
В случае, если кто-либо попытается использовать meta refresh для перенаправления на новый URL в приложениях Facebook (приложение "Страница Tab" или приложение IFRAME), тэг каким-то образом отключен Facebook.
Обходной путь:
<script>
top.window.location = 'http://example.com';
</script>
Не забудьте указать "верх", поскольку приложения Facebook находятся в IFRAME.