Недавно я столкнулся с той же проблемой. Моя версия eclipse не поддерживала java-версию 8.
Я случайно установил jre 8 на моем компьютере, который автоматически обновил мою переменную PATH, добавив «C: \ ProgramData \ Oracle \ Java \ javapath "в начале процесса, который затмил eclipse, чтобы забрать эту версию (и игнорировать добавленную вручную версию 1.6, которая появилась позже в порядке) и сбой с кодом выхода 13.
Я просто удалил эту строку из путь, из-за которого система подбирала мою старшую версию, и затмение началось просто отлично.
Я предполагаю, что Вы пытаетесь решить, предоставить ли улучшенное JavaScript содержание. Лучшие реализации ухудшаются чисто, так, чтобы сайт все еще работал без JavaScript. Я также предполагаю, что Вы имеете в виду обнаружение серверной стороны, вместо того, чтобы использовать <noscript>
элемент по необъясненной причине.
нет хорошего способа выполнить серверную сторону обнаружение JavaScript. Как альтернатива возможно установить cookie с помощью JavaScript, и затем протестировать на тот cookie с помощью сценариев серверной стороны на последующие просмотры страницы. Однако это не подошло бы для решения, какое содержание поставить, поскольку это не будет в состоянии отличить посетителей без cookie от новых посетителей или посетителей, которые блокируют куки.
Я думаю, что Вы могли вставить тег изображения в тег noscript и посмотреть на статистику, сколько раз Вашего сайта и как часто это изображение было загружено.
Вы могли бы, например, использовать что-то как document.location = 'java_page.html' для перенаправления браузера к новой, загруженной сценарием странице. Отказ перенаправить подразумевает, что JavaScript недоступен, в этом случае можно или обратиться к CGI ro utines или ввести соответствующий код между тегами. (ОТМЕТЬТЕ: NOSCRIPT только доступен в Netscape Navigator 3.0 и.)
noscript
блоки выполняются, когда JavaScript отключен и обычно используется для отображения альтернативного содержания, к которому Вы генерировали в JavaScript, например,
<script type="javascript">
... construction of ajaxy-link, setting of "js-enabled" cookie flag, etc..
</script>
<noscript>
<a href="next_page.php?nojs=1">Next Page</a>
</noscript>
, Пользователи без js доберутся эти next_page
ссылка - можно добавить параметры здесь так, чтобы Вы знали на следующей странице, приехали ли они по ссылке JS/non-JS или пытаются установить cookie через JS, отсутствие которого подразумевает, JS отключен. Оба из этих примеров довольно тривиальны и открыты для управления, но Вы получаете идею.
, Если Вы хотите чисто статистическую идею того, сколько из Ваших пользователей отключили JavaScript, Вы могли сделать что-то как:
<noscript>
<img src="no_js.gif" alt="Javascript not enabled" />
</noscript>
тогда проверяют Ваши журналы доступа для наблюдения, сколько раз было поражено это изображение. Немного сырое решение, но это даст Вам хорошую идею в процентном отношении для Вашей базы пользователей.
вышеупомянутый подход (отслеживание изображения) не будет работать хорошо на текстовые браузеры или тех, которые не поддерживают js вообще, поэтому если Ваша база пользователей колеблется, прежде всего, к той области, это не могло бы быть лучшим подходом.
Вы захотите смотреть на тег noscript.
<script type="text/javascript">
...some javascript script to insert data...
</script>
<noscript>
<p>Access the <a href="http://someplace.com/data">data.</a></p>
</noscript>
Обнаружить его в какой? JavaScript? Это было бы невозможно. Если Вы просто хотите его для входа целей, Вы могли бы использовать своего рода схему отслеживания, где каждая страница имеет JavaScript, который выполнит запрос для специального ресурса (вероятно, очень маленькое gif
или подобный). Тем путем можно просто взять различие между уникальными запросами страницы и запросами на файл отслеживания.
Люди уже отправили примеры, которые являются хорошими вариантами для обнаружения, но на основе Вашего требования "дают предупреждение, что сайт не в состоянии функционировать правильно без браузера, имеющего включенный JS". Вы в основном добавляете элемент, который появляется так или иначе на странице, например, 'всплывающие окна' на Переполнении стека при приобретении значка, с соответствующим сообщением, затем удаляют это с некоторым JavaScript, который работает, как только страница загружается (и я имею в виду DOM, не целую страницу).
Техника, которую я использовал в прошлом, должна использовать JavaScript для записи сеансовых куки, которые просто действуют как флаг, чтобы сказать, что JavaScript включен. Тогда серверный код ищет этот cookie и если это не найдено, принимает меры как соответствующий. Конечно, эта техника действительно полагается на включенные куки!
Можно использовать простой отрывок JS для устанавливания значения скрытого поля. Когда отправлено назад Вы знаете, был ли JS включен или нет.
Или можно попытаться открыть всплывающее окно, которое Вы закрываете быстро (но это могло бы быть видимо).
Также у Вас есть тег NOSCRIPT, который можно использовать для показа текста для браузеров с отключенным JS.
Если Ваш вариант использования - то, что у Вас есть форма (например, форма входа в систему), и Ваш сценарий серверной стороны должен знать, включили ли пользователю JavaScript, можно сделать что-то вроде этого:
<form onsubmit="this.js_enabled.value=1;return true;">
<input type="hidden" name="js_enabled" value="0">
<input type="submit" value="go">
</form>
Это изменит значение js_enabled к 1 прежде, чем отправить форму. Если Ваш сценарий серверной стороны получает 0, никакой JS. Если это получает 1, JS!
Я предложил бы, чтобы Вы пошли наоборот путем записи незаметного JavaScript.
Делают функции из Вашей работы проекта для пользователей с JavaScript отключенными, и когда Вы сделаны, реализуете свои улучшения UI JavaScript.
Если JavaScript будет отключен, то Ваш клиентский код не будет работать так или иначе, таким образом, я предположу, что Вы подразумеваете желание той информации доступная серверная сторона. В этом случае noscript менее полезен. Вместо этого я имел бы скрытый вход и использовал бы JavaScript для заполнения значения. После того, как Ваш следующий запрос или обратная передача, если значение - там Вы, знают, что JavaScript включен.
остерегаться вещей как noscript, где первый запрос может показать JavaScript, отключенные, но будущие запросы включают его.
Тег noscript работает хорошо, но потребует, чтобы каждый дополнительный запрос страницы продолжил служить бесполезным файлам JS, так как по существу noscript является клиентской проверкой.
Вы могли установить cookie с JS, но поскольку кто-то еще указал, это могло перестать работать. Идеально, требуется быть в состоянии обнаружить сторону клиента JS, и не используя cookie, установить сторону сервера сессии для того пользователя, который указывает, JS, включен.
возможность А состоит в том, чтобы динамично добавить 1x1 изображение с помощью JavaScript, где атрибут src является на самом деле серверным сценарием. Весь этот сценарий делает, сохраняет к текущему сеансу пользователя, который JS включен ($ _SESSION ['js_enabled']). Можно тогда произвести 1x1 пустое изображение назад к браузеру. Сценарий не будет работать за пользователями, у которых есть JS, отключенный, и следовательно $ _SESSION ['js_enabled'] не будет установлен. Тогда для дальнейших страниц, подаваемых этому пользователю, можно решить, включать ли все внешние файлы JS, но Вы будете всегда хотеть включать проверку, так как некоторые Ваши пользователи могли бы использовать дополнение NoScript Firefox или иметь JS, отключенный временно по некоторой другой причине.
Вы, вероятно, захотите включать эту проверку где-нибудь близко к концу Вашей страницы так, чтобы дополнительный Запрос HTTP не замедлял рендеринг Вашей страницы.
Это - то, что работало на меня: это перенаправляет посетителя, если JavaScript отключен
<noscript><meta http-equiv="refresh" content="0; url=whatyouwant.html" /></noscript>
При добавлении обновления в meta внутри noscript не является хорошей идеей.
Поскольку тег noscript не XHTML совместимый
Значение атрибута "Обновление" нестандартно, и не должно использоваться. "Обновление" берет на себя управление на расстоянии в одна страница от пользователя. Используя "Обновление" вызовет отказ в Инструкциях по Доступности веб-контента W3C---Ссылка http://www.w3schools.com/TAGS/att_meta_http_equiv.asp.
Почему бы вам просто не поставить взломанный обработчик событий onClick (), который будет срабатывать только при включенном JS, и использовать его для добавления параметра (js = true) к выбранному / нажатому URL-адрес (вы также можете обнаружить раскрывающийся список и изменить значение - добавить скрытое поле формы). Итак, теперь, когда сервер видит этот параметр (js = true), он знает, что JS включен, а затем выполняет свою причудливую логику на стороне сервера.
Обратной стороной этого является то, что когда пользователь впервые заходит на ваш сайт, закладку, URL-адрес, URL-адрес, сгенерированный поисковой системой, вам нужно будет определить, что это новый пользователь, поэтому не ищите NVP, добавленную в URL-адрес, и серверу придется ждать следующего щелчка, чтобы определить, включен / отключен пользователь JS. Кроме того, еще одним недостатком является то, что URL-адрес попадет в URL-адрес браузера, и если этот пользователь затем закладки этот URL-адрес, он будет иметь js = true NVP, даже если у пользователя не включен JS, хотя при следующем щелчке сервер будет разумно знать, включен ли у пользователя JS или нет. Вздох ... это весело ...
Поскольку я всегда хочу дать браузеру что-то стоящее, чтобы взглянуть на него, я часто использую этот трюк:
Во-первых, любая часть страницы, для которой требуется JavaScript для правильной работы (включая пассивные элементы HTML которые изменяются через вызовы getElementById и т. д.) предназначены для использования как есть с предположением, что там ISN'T javaScript доступен. (оформлен так, как будто его там не было)
Любые элементы, для которых требуется JavaScript, я помещаю в тег, например:
<span name="jsOnly" style="display: none;"></span>
Затем в начале моего документа я использую .onload
или document.ready
в цикле getElementsByName ('jsOnly')
, чтобы установить .style.display = "";
, чтобы снова включить JS-зависимые элементы. Таким образом, браузеры, не использующие JS, никогда не должны видеть зависимые от JS части сайта, и если они у них есть, они появляются сразу же по мере готовности.
Когда вы привыкнете к этому методу, довольно легко будет гибридизировать ваш код для обработки обеих ситуаций, хотя я только сейчас экспериментирую с тегом noscript
и ожидаю, что он будет иметь некоторые дополнительные преимущества.
Чтобы заставить пользователей включить сценарии JavaScripts, я установил атрибут href для каждой ссылки на один и тот же документ, который уведомляет пользователя о необходимости включения сценариев Java или загрузки Firefox (если они не знают, как включить сценарии Java). Я сохранил фактический URL-адрес ссылки для атрибута «name» ссылок и определил глобальное событие onclick, которое считывает атрибут «name» и перенаправляет туда страницу.
Это хорошо работает для моей пользовательской базы, хотя и немного фашистски;).