Обычно, когда страница загружается, а браузер отключен Javascript, мы используем тег <noscript>
, чтобы написать что-то вроде предупреждения и сообщить клиенту включить Javascript. Однако Facebook, даже после, вы загружаете страницу с включенной поддержкой JS, а в момент ее отключения вы получаете уведомление. Как я могу сделать что-то подобное?
UPDATE: этот механизм больше не доступен в Facebook, но это было раньше, я слишком поздно задавал этот вопрос, но если найдется какой-либо ответ, я бы очень признателен.
Что я пробовал
Я думал о том, что на моей странице есть сегмент, который продолжает проверять, отключен ли Javascript, если да, показать содержимое <noscript>
.
Чтобы достичь этого, я создал страницу CheckJS.html.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0">
</head>
<body>
<noscript>
JS is disabled!
</noscript>
</body>
</html>
Эта страница будет продолжать обновлять, когда JS отключен, JS отключен!.
Чтобы добавить эту страницу на мою исходную страницу. Я попробовал следующее:
1-.load()
Я использовал JQuery до .load('CheckJS.html')
внутри div
. Однако кажется, что .load()
загружает только содержимое <body>
CheckJS.html. Означает элемент <head>
и то, что внутри него не будет загружено внутри div
.
2- iframe
После некоторого поиска я обнаружил, что единственным возможным способом загрузки страницы FULL html , включая <head>
, является использование <iframe>
.
<iframe src="CheckJS.html"></iframe>
Однако <meta http-equiv="refresh" content="0">
CheckJS.html влияет на родительскую страницу, сама исходная страница начала обновляться.
Если мы сможем использовать этот <iframe>
, не заставляя исходную страницу обновляться, это может быть решением, но даже если это решение найдено, я чувствую его больше трюк а не реальное решение.
UPDATE
Антоний ответ доказал, что я ошибался в том, что iframe
обновляет исходную страницу, браузер показывает, что ее обновление, но на самом деле его нет, если это так, то Javascript можно избежать, CheckJS.html
, который я предоставил, выполняет эту работу, и даже лучше, <noscript>
будет скрыт, когда JS будет снова включен. Однако весь этот подход iframe не настолько удобен для пользователя (может заморозить браузер), если обновление не происходит каждые 10 секунд или около того, что не является мгновенным обнаружением.