Как узнать, отключен ли Javascript в браузере?

StackOverflow https://stackoverflow.com/questions/45097

  •  09-06-2019
  •  | 
  •  

Вопрос

Я предполагаю, что вы не можете использовать фрагмент кода JavaScript для проверки того, отключил ли пользователь браузера JavaScript.Итак, что я могу использовать вместо этого?Может ли кто-нибудь предложить пример кода?

Я хочу обернуть вокруг него оператор if/then.

Я часто пишу на CFML, если это помогает.

Это было полезно?

Решение 4

Мы говорим о чем-то вроде этого:

JavaScript:

<body>
...
...
<script type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script>
<noscript>Your browser does not support JavaScript!</noscript>
...
...
</body>

Другие советы

это полный хак, но вы можете использовать iframe внутри тега noscript, чтобы вызвать HTTP GET по URL-адресу, чтобы сообщить серверу, что у пользователя не включен JavaScript.

<body>
...
...
<noscript>
    <iframe src ="/nojs.aspx?SOMEIDENTIFIER=XXXX&NOJS=TRUE" style="display: none;">
    </iframe>
</noscript>
...
...
</body>

Используйте HTML-теги <noscript>.

Не уверен, что вы пытаетесь сделать, но если вам просто нужно сообщить пользователю, что требуется Javascript, вы можете просто использовать тег «<noscript>».Если вам нужно знать о сервере, вы можете сделать запрос в стиле Ajax на сервер из javascript.Если вы получаете запрос, Javascript работает, в противном случае — нет.

Он просит проверить, включен ли JavaScript.Я могу думать только о том, чтобы сделать именно то, что сказал ОП: попробуйте использовать Javascript с интервалом для отправки обратного вызова, если JS активирован. К сожалению, я не думаю, что вы можете проверить на стороне сервера, включен ли JS, поэтому вы скорее используете теги. чем отображать другой контент с сервера.

Если вы используете Ненавязчивый JavaScript тогда вам не нужно проверять, включен ли у пользователя JavaScript.

Если у них включен JavaScript, они получат полный эффект, но если нет, то пользователи все равно смогут использовать ваш сайт.И помимо того, что этот подход лучше с точки зрения доступности, вы можете обнаружить, что этот подход улучшает ваш SEO.

<noscript>
    ...some non-js code
</noscript>

Да, этот фрагмент NoScript верен.

Возможно, у вас есть javascript, который выполняет некоторый запрос AJAX и проверяет, есть ли он.У тех, кто загружает страницу и не выполняет запрос, либо отключен JS, либо они роботы.

На самом деле все, что вы можете сделать, это поместить какое-то сообщение в теги.Кажется, я помню, как пробовал это где-то на ASP.NET, но на самом деле вы можете только сказать, поддерживает ли браузер Javascript, а не то, разрешен ли он на самом деле или нет.

Я мало что знаю о CFML, но .NET имеет возможность определять возможности браузера.Однако он не имеет возможности определить, способный JavaScript, но получилось ли это выключенный.Значит, ты тоже там застрял.

Насколько мне известно, кроме тега HTML noscript, вы мало что можете сделать, кроме постепенного написания javascript (см. «Прогрессивное улучшение»), чтобы вам не нужно было проверять наличие Javascript:off.

Я не знаю JS, но можно ли изменить ссылки внутри страницы с помощью JS?Если кто-то перейдет по неизмененной ссылке, он не использует JS, но если он это сделает, то он использует JS.Есть ли в этом смысл?

Никогда не придумал, как сделать это без поездки туда и обратно, так что это зависит от вашей цели.

Если для продолжения им нужен Javascript, то я (в .net) сделал такие вещи, как отключение кнопки входа в систему на стороне сервера, затем включил ее на клиентской стороне с помощью javascript и использовал тег noscript для отображения сообщения об ошибке.

Если это должно работать в любом случае, вы можете использовать прогрессивное улучшение и/или использовать js для установки скрытого поля, а затем установить переменную сеанса, но это означает, что вы не узнаете, пока они не дойдут до второго запроса.

ты мог бы написать

<script type="text/javascript" language="javascript">document.write("<input type='hidden' name='hasJs' value='1' />");

или иным образом напишите файл cookie через js, а затем прочитайте его на сервере, если вы хотите проверить серверную часть на наличие js.

если вы ищете способ проверить это на стороне сервера, вы можете отправить пользователю js, который помещает файл cookie....если файл cookie существует в запросе, вы можете определить, сработал сценарий или нет!

Один из надежных способов сделать это — использовать $.post в javascript для отправки заметки на ваш сервер.(Извиняюсь, если в этом есть какие-либо ошибки, написанные у меня в голове, обновлю позже, когда приду к тестированию).Должен позволить вам построить его так, чтобы вы могли даже извлекать данные сеанса, если они используют JavaScript, что позволит вам предоставлять замену JavaScript, не прибегая к использованию .

Ваш скрипт на странице:

<script>
function myJavascriptTest(){
    $.post ()('myJavascriptTest.php', {myJavascriptOn: true}, function(){
    return true;
}
myJavascriptTest()
</script>

И в целевом .php...

<?php

if ($_POST['myJavascriptOn'] == true){
    $_SESSION['javascriptIsOn'] = true;
} else {
    $_SESSION['javascriptIsOn'] = false;
}
?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top