если js отключен, подключаем php

372
07 марта 2017, 16:35

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

<script type="text/javascript">
$(function() {
$.post('/log.php', { width: screen.width, height:screen.height }, function(json) {
   if(json.outcome == 'success') {
       // запрос прошёл успешно
   }
 },'json');
});

но если js у пользователя отключен?

Как за одну загрузку страницы, получить переменную php с разрешением экрана, (если разумеется включен js) и тут же отправить, и если js отключен, то оправить без разрешения экрана?

В моем варианте все работает только при включенном js ((

Зачем это нужно?

Кто то скликивает рекламу в яндексе, некотрые клики яндекс считает недействительными, а некоторые проходят. Блокировка по ip не вариант, т.к. у этого провайдера ip динамические, и можно заблокировать не того, поэтому нужно максимум данных, чтобы вовремя внести его в список исключенных, т.е. менять ip

Answer 1

Как отправить ajax-запрос при отключенном js? Никак.

Что касается размеров экрана, если их заменить на размеры окна браузера (точнее, размеры, отведённые под страницу), то можно использовать css'ные media-запросы:

body { background: url(/screen-size?large); } 
 
@media screen and (max-width: 1200px) { 
  body { background: url(/screen-size?lte=1200); } 
} 
 
@media screen and (max-width: 900px) { 
  body { background: url(/screen-size?lte=900); } 
} 
 
@media screen and (max-width: 600px) { 
  body { background: url(/screen-size?lte=600); } 
} 
 
@media screen and (max-width: 400px) { 
  body { background: url(/screen-size?lte=400); } 
} 
 
@media screen and (max-width: 200px) { 
  body { background: url(/screen-size?lte=200); } 
}

Answer 2

Создайте блок с оповещение пользователя об необходимости включить js,

<!DOCTYPE html>
    ...
    ...
    <div id="js-warning"> JS ОТКЛЮЧЁН ... </div>

прячьте его скриптом

<script>
    document.getElementById("js-warning").style.display = "none";
</script>

Если js отключен, пользователь получает сообщение с рекомендацией о его включении. Метод старый как лапти, но 100% рабочий.

Не встречал отключенного js лет так 5.

READ ALSO
дожидаться выполнения Ajax [дубликат]

дожидаться выполнения Ajax [дубликат]

На данный вопрос уже ответили:

324
Yii2 ActiveForm submit

Yii2 ActiveForm submit

У меня есть 2 формы одна обычная

514
Вызов JS функции из WebView выдаёт ошибку &ldquo;function is not defined&rdquo;

Вызов JS функции из WebView выдаёт ошибку “function is not defined”

При попытке вызвать функцию MyApp_HighlightAllOccurencesOfString() из WebView

303
Как перевести таск из Grunt в Gulp?

Как перевести таск из Grunt в Gulp?

Всем приветЕсть таск для гранта, может кто помочь перевести его в таск для галпа? Чтобы синтаксис был верен

363