Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как увидеть TCP соединения браузера Chrome?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Ответ написан
    Комментировать
  • Поисковые роботы понимают JS?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Да, понимают.
    Уж точно формируют страницу с учетом JS, а потом анализируют.
    Но лучше так не делать. Если вы препятствуете поисковым роботам, то это минус сайту.
    Ответ написан
  • Js - насколько наказуемо использовать ручные отслеживалки загрузки?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Сам так делал. Вполне нормально.
    Если расширение публичное, то можно в настройках сделать галочку "ускорять загрузку". А можно и не делать.

    Кстати, можно пойти по пути прокси - и перехватывать сами ajax-запросы и фильтровать уже их.

    Есть webRequest
    Ответ написан
  • Почему одно и то же значение в input то валидно, то нет?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Предлагаю такой простой эксперимент в консоли:
    5b968baf9dc20559535666.png
    Ответ написан
  • Что значат эти ошибки?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если скрипт прерывается из-за ошибки, то следующие за ним скрипты выполняются в порядке очереди. И это не влияет на работу предыдущих скриптов.

    Более того, если скрипт успел что-то сделать, то это тоже считается. Например, скрипт успел объявить функцию и повесить её в качестве обработчика события, а потом произошла ошибка - обработчик останется и будет работать.

    Далее, если в этом обработчике события ошибка, то она будет происходить каждый раз, когда происходит событие. И если обработчик что-то успевает сделать до ошибки, создать переменную, изменить страницу, то это всё считается. Так что создаётся впечатление, что "всё" работает, хотя так и есть, просто часть некритичного функционала обрезана.

    Конкретно в вашем случае смотрите строки 141 в main.js - там происходит ошибка. Если это, к примеру, попытка показать баннер, то баннера не будет. Но всё остальное будет работать в штатном режиме.
    Ответ написан
    Комментировать
  • Как узнать, что реклама Google AdSense загрузилась?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно проанализировать наличие баннера на странице, его размеры, и в случае отсутствия попытаться показать другую рекламу. Но борьба с AdBlock - дело такое, довольно гиблое.

    Вот, например, у пользователя в файле hosts такие записи:
    127.0.0.1   pagead2.googlesyndication.com
    127.0.0.1   an.yandex.ru

    Что вы будете делать? У него ваша реклама не показывается в принципе, как бы вы ни старались.

    А если JS отключён, как у меня? Всё, что вы можете сделать, так это задержать пользователя на сайте подольше интересным контентом, чтобы он не вернулся к поисковой выдаче гугл, а то гугл подумает, что ваш сайт не интересен и понизит его позиции.

    Вывод - делайте сайт интересным и полезным. Это увеличит посещаемость, а значит и показ рекламы. А тех, у кого она не отображается, игнорируйте и не обижайте.
    Ответ написан
    4 комментария
  • Изменить глобальную let?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно создать объект
    let glob = {}
    И дальше обращаться к нему из любого места
    glob.x = 123;
    Это и будет аналогом глобального объекта.
    Другого способа нет.

    Если же у вас глобальная let x, и вы её перекрыли другим let x, то вы не увидите глобальную, пока не выйдете из зоны действия локальной x. Локальная будет скрывать глобальную.
    Ответ написан
    Комментировать
  • Парсинг веб страницы на стороне пользователя (client side), возможно?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Такое невозможно из-за безопасности браузера.

    Вы бы хотели, чтобы любой сайт в интернете мог обратиться к вашему сайту, используя ваши куки, прочитать личные данные и отослать неизвестно кому? Вся приватность бы рухнула во всём мире в один миг. Магазины, на которые вы заходите, читали бы ваши пароли и постили бы за вас сообщения во вконтакте.

    Единственный выход - делать это на стороне сервера.
    Правда, есть всякие извращения, расширение можно написать своё, но это уже выходит за рамки вопроса.
    Ответ написан
    2 комментария
  • Как добавить кастомную сортировку в datatables.js?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Нужно привести все числа (в строковом формате) к единой длине, добавив пробелы.
    €   26
    €  111
    €2 461

    Это самый простой, но не самый правильный способ.

    А по-хорошему сортировка должна быть умной. Для этого сортировке обычно скармливается функция сравнения вида cmp(a,b) в которой и производится сравнение двух элементов. Там и должна находиться вся магия, а именно - приведение цен к числам и сравнение уже самих чисел. Смотрите документацию к datatables.js, изучайте исходник. Возможно, такой возможности из коробки там вообще нет, тогда нужно допиливать или использовать другое решение.
    Ответ написан
    Комментировать
  • Как удалить все cookies?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    С функцией всё в порядке. Это единственный способ сделать это из JavaScript.
    Если пользоваться оберткой из jquery, то скорости это не прибавит.

    Не переживайте, это не должно повесить браузер, так как в браузере должно быть ограничение на количество кук для одного домена, то есть кук должно быть мало. У меня в хроме сейчас этот предел - 180 штук. То есть никто в здравом уме не будет хранить в куках большие массивы данных, а сотня штук шустро перебирается в скрипте.

    Изучайте: https://learn.javascript.ru/cookie
    Ответ написан
    2 комментария
  • Как проверить заполненность полей в пошаговой форме?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Установить кнопку перехода в disabled (или убрать onclick, если это простой элемент).
    И по таймеру проверять форму - динамически обновлять каждое поле и кнопку перехода в соответствии с соблюдением условий.
    Ответ написан
  • Почему не выводится значение в поле input?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    function resultPlus() {
      var
        number1  = document.getElementById('number-1').value,
        number2  = document.getElementById('number-2').value,
        plus     = number1 + number2;
      result_plus = document.getElementsByName('result_plus')[0];
      result_plus.innerHTML = plus;
    }
    Ответ написан
    2 комментария
  • Как проверить в JS-коде, есть ли на элементе обработчик onclick?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    element.onclick === undefined разве не работает?
    Ответ написан
  • Как лучше раскрыть весь список по кнопке?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    А почему не показать все модели сразу? Зачем лишний клик?
    Я понимаю, если бы вы в кратком списке показывали только самые популярные модели, но вы их показываете по алфавиту.

    Вообще, если моделей слишком много, то не лучше ли подгрузить их отдельным ajax-запросом?
    Ответ написан
  • Почему не работает js код?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Потому что 12 / 10 равно 1.2, а не 1
    Деление происходит до тех пор, пока показатель степени не кончится.
    То есть у вас число 0.00000000000000000000000000000000000000012,
    только нулей больше 300 штук. И оно не равно нулю.

    Используйте Math.floor(number), чтобы привести к целому.
    Ответ написан
    Комментировать
  • Бинарный поиск в координатной сетке?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Общий случай. Создаёте массив 10*10. Каждый элемент - это множество, содержащее все квадраты по заданным координатам. Чтобы обратиться к множеству, можно использовать непосредственно числовые координаты. Чтобы обратиться к конкретному квадрату, нужно перебрать все квадраты в множестве (предполагается, что их не много).

    Если по заданным координатам может быть только 1 квадрат, то решение вообще элементарное и можно было самому догадаться.

    P.S. Если координатная сетка большая, то всё то же самое, только используется промежуточная координатная сетка с более крупными ячейками.
    Ответ написан
    Комментировать
  • [JS] Удалить script до его загрузки и выполнения

    dollar
    @dollar
    Делай добро и бросай его в воду.
    <noscript>
    <script type="text/javascript"
     src="http://example.com/script1.js">
    </noscript>
    Ответ написан
    Комментировать