Как я могу получить статус JavaScript любого браузера? - PullRequest
1 голос
/ 16 июля 2009

Я хочу получить статус javascript любого браузера. Как я могу получить это .?

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

Я использую php.

Заранее спасибо ......

Ответы [ 6 ]

8 голосов
/ 16 июля 2009

Добавьте ваше сообщение для не включенных браузеров в теге javascript.

Пример:

<noscript>
<p> Javascript is not enabled. Please enable it. <p>
</noscript>

Так что, если javascript не включен, то будет отображено вышеуказанное сообщение.

1 голос
/ 16 июля 2009

Возможно, это немного излишне, но этот скрипт пытается запустить функцию jsTest. Если запустить, он установит текст div на JavaScript включен. Если он не запустится, текст о том, что JavaScript отключен, останется.

<html>
<head>
<script type="text/javascript">
function jsTest()
{
  var jsStatusDiv = document.getElementById("jsStatus");
  jsStatusDiv.innerHTML = "JavaScript Enabled";
}
</script>
</head>
<body onload="jsTest();">
<div id="jsStatus">JavaScript Disabled</div>
</body>
</html>
1 голос
/ 16 июля 2009

Если вы хотите определить на стороне сервера, запускает ли js браузер - запустите в браузере какой-нибудь тестовый скрипт, который отправит запрос на публикацию ajax с результатом обратно на сервер

в качестве альтернативы javascript может установить cookie

затем сравните результат с ожидаемым.

0 голосов
/ 16 июля 2009

Если вам нужно, чтобы ваше приложение отображало два разных состояния в зависимости от доступности JavaScript, вы можете попробовать что-то хакерское, например создание промежуточной страницы.

Эта страница будет содержать что-то вроде

<meta http-equiv="refresh" content="5;URL=mysite.php?js=0">
<script type="text/javascript">
  window.location.replace("mysite.php?js=1");
</script>

Это перенаправит людей с Javascript на одну страницу, а остальные на другую. Это немного глупо, хотя.

Если ваши пользователи переходят на страницу входа в систему, у вас также может быть дополнительное скрытое поле на странице входа в систему:

<input id="hasJs" type="hidden" name="hasJs" value="">

А потом

<script type="text/javascript">
  document.getElementById('hasJs').value = '1';
</script>

Hth Сорин

0 голосов
/ 16 июля 2009

Самым оригинальным способом, который я могу придумать, является вывод HTML-кода вызовом функции JavaScript, например, postbackDoesExecute (), который выполняет AJAX-запрос к PHP-скрипту, называем его jsCallback.php. Когда jsCallback.php вызывается из запроса AJAX, он обновляет сеанс пользователя (или запись в базе данных, в зависимости от того, как вы решили его реализовать) с Javascript = true или чем-то другим. Если эта запись не записана, то очевидно, что либо истекло время ожидания запроса, либо никогда не выполнялся вызов JavaScript для postbackDoesExecute (), что означает, что JavaScript не включен.

Просто мысль ...

0 голосов
/ 16 июля 2009

В теге body вызовите функцию загрузки javascript. Эта функция устанавливает переменную javascript, которую JS включает в этом браузере. По умолчанию вы предполагаете, что JS отключен.

Javascript будет вызываться, только если JS включен, иначе ничего не произойдет. В этой функции вы можете использовать document.write для отображения того, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...