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

    @rPman
    Открываем страницу в своем браузере (на основе любого решения на любом языке обычно это какой-нибудь WebBrowser контрол) в пару десяток строчек кода и инжектим в нее свой javascript, который эмулируем действия пользователя, обычно это очень простой код, сложнее когда формы многоэтапные.

    Решение универсальное, нет ни одной защиты от автоматизации, которую бы это решение не смогло обмануть (но возможно создать сложности, так как правильно эмулировать в некоторых случаях клики клавиатуры сложно).

    Я писал подобное на java, совсем давно были эксперименты на mono (c#), там используется основанный на firefox движок, работает неплохо и в безголовном варианте на любой дешевой vps-ке.

    Если нет необходимости скрывать интерфейс (запуск в виде службы), можно использовать какие-либо плагины к браузеру (тот же tempermonkey/greasemonkey) и реализовать все полностью на javascript.
    Ответ написан
    Комментировать
  • Почему слетаете кодировка при ajax запросе методом load jQuery?

    @rPman
    что выдает curl -v http://вашсайт.../inc/calc-parts/sketch-straight.php

    p.s. немного смущает пробел после php в ссылке, плюс нет никакого смысла да и не красиво в ссылках на данные указывать анчор #, это сугубо html ui решение
    Ответ написан
  • Как сделать, чтобы при перезагрузке страницы, страница начиналась просматриваться с самого верха?

    @rPman
    где-нибудь сверху поставьте <a href="#" id="xxx"> а в нужный момент перейдите location.href = "#xxx";
    Ответ написан
    Комментировать
  • Какие варианты защиты, кто пробовал, Обфускация JavaScript?

    @rPman
    Переделайте все на serverside, тем более благодаря nodejs это будет не так сложно как раньше.

    т.е. исключите частично или полностью javascript на клиентской стороне, тогда воровать будет просто нечего.
    Ответ написан
    Комментировать
  • Как Запретить скрипт если форма закрыта или заполнена?

    @rPman
    Сохраните факт отправки где-нибудь, на выбор - cookies (рекомендуется, их поддерживают все и они простые), localStorage или на сервере (при следующем открытии формы вы должны будете вернуть этот флаг, но осторожно, при переходе назад в браузере запрос к серверу может не произойти, т.е. вы должны его сделать сами, перед созданием таймера)
    Ответ написан
    Комментировать
  • Можно ли отправить AJAX запрос POST и далее уже работать с этими даннымим в PHP?

    @rPman
    Надежнее запускать серверное приложение в виде демона, если у вас критичная к остановке обработка (например лимиты времени работы скрипта) плюс удобнее разрабатывать приложение в виде standalone cli приложения.

    Мало того, можно дальше пойти, начать писать на php react асинхроные приложения, когда уже оно само представляется в виде http/websocket сервера, без необходимости восстанавливать контекст на каждый запрос.
    Ответ написан
    Комментировать
  • Event loop и то как работает асинхронность это одно и тоже или просто связано?

    @rPman
    Где то под капотом nodejs работает обычный event loop, все асинхронные методы складывают в очередь свои события, каждый кусок кода выполняется, будучи вызван именно от сюда.

    Все методы должны как то уметь работать асинхронно, т.е. будить event loop при завершении работы, если не умеют - наверное для них (каждого вызова) запускается свой поток, внутри которого работает обычный синхронный вызов, по окончании работы которого так же дергается тот же event loop.

    например мы хотим асинхронно файл прочитать - метод получает от операционной системы хандлер объекта, который умеет работать асинхронно, как только получили порцию данных - в цикле event loop завершает работать метод ожидания хоть какого то события (список хандлеров в параметрах либо это специализированный семафор, который все дергают) и обрабатывает событие, которое его разбудило - т.е. видим что пришли данные и вызываем callback метод, у казанный в парметрах вызова работы с файлом, в параметрах - результаты работы. После их обработки снова в цикле вызывается метод ожидания. Таким образом основной цикл работает в одном потоке, но ожидания только если нет событий.
    Ответ написан
  • Как распарсить страницу с полной прогрузкой javascript?

    @rPman
    Не мучайтесь, запускайте полноценный браузер (webkit есть под все платформы), при этом вы имеете полный доступ к загружаемой странице, можете инжектить свой код, можете просто получить документ в виде xml (не файл а именно DOM модель, собираемую в т.ч. javascript)

    И главное, веб-сайт ничего не сможет сделать чтобы предотвратить ваши попытки автоматизации работы с сайтом (кроме статистических конечно, но тут уже вопрос реализации и ваших требований)
    Ответ написан
  • Какие есть способы (или разрешения) получать координаты местоположения сайтом с https ( ssl ), открывающемся в браузере приложения Android или iOS?

    @rPman
    Полагаю никаким
    Самописный встроенный браузер для того и используется, чтобы приложение могло самостоятельно контролировать какой-либо функционал.

    Соответственно, если приложение не озаботилось выдачей вам координат, то облом.

    p.s. обычно все используют webkit , вроде в списке возможностей geolocationapi заявлено:
    https://webkit.org/status/#

    https://developer.android.com/reference/android/we... так же заявлена поддержка, если сайт использует ssl но разработчик приложения сам должен реализовать колбек на подтверждение выдачи данных
    Ответ написан
  • Делать скрин браузера пользователей. Есть такое?

    @rPman
    Если разработчики браузера разрешат делать такое (без разрешения пользователя) это будет еще одной дыркой в cross site scripting, т.е. можно будет получить доступ к данным другого домена (открыв его в iframe), со всеми сохраненными авторизациями.

    click jacking уже работает (прозрачный iframe подставляется под курсор мышки нужной стороной), но в слепую, а будет - нет.
    Ответ написан
  • Возможно ли осуществить с сайта #2 вход на сайт #1 на простой форме входа?

    @rPman
    сайт #2, на котором проходит авторизация должен предоставлять механизмы (специальные запросы доступные только другим сайтам #1), сообщающие что вот такой то пользователь (идентификатор, создаваемый на старте авторизации еще в #1) ввел верные данные (и его роль админ/пользователь/гость...).
    Ответ написан
    Комментировать
  • Как сделать обработку формы без отправки?

    @rPman
    на onclick/onchange поля ввода (в зависимости, когда именно нужно делать запрос) ставите обработчик javascript которые используя ajax с помощью какой-либо библиотеки, тот же jquery (или более низкий уровень XMLHttpRequest без библиотек) а на сервере на этот запрос вы уже делаете sql запрос и возвращаете результат.

    Не рекомендую делать запрос на каждое событие, ставьте ограничение - не чаще чем раз в X секунд, например вместо прямого запроса делать его внутри setInterval, отменяя предыдущий.
    И помните что запросы ajax асинхронные, т.е. некоторые ответы могут прийти позже других (такие вы по логике не должны выводить, так как уже получили более новый)
    Ответ написан
  • Как с помощью JavaScript можно определить скорость интернета пользователя?

    @rPman
    Интернет в вашем случае почти наверняка 2 параметра - скорость загрузки (сервер->клиент) и пинги, это можно сделать просто сделав пару запросов (большой файл и файл 0 размера) на свой сервер (обычным ajax), замерив время.

    p.s. чем больше размер файла (или чем больше запросов) тем точнее информация но тем выше нагрузка на сервер, да и клиенты не будут довольны что при заходе на сайт у них будет тормозит.
    Ответ написан
    Комментировать
  • Как укоротить createElement в javascript?

    @rPman
    Что может быть читабельнее этого:
    function node(name){return document.createElement(name);}
    var div1=node(n'div')
       ,div2=node(n'div')
       ,div3=node(n'div')
       ,div4=node(n'div');


    p.s. избегайте ручное создание нод в проекте, пользуйтесь шаблонизаторами (их миллион) - готовые куски шаблонов храните тут же на странице, в теге < script type='text/html' >
    Ответ написан
    Комментировать
  • Как на клиенте в разных js файлах использовать один socket?

    @rPman
    тот самый момент где можно использовать глобальные переменные или свои глобальные функции, дающие доступ к переменным
    Ответ написан
    Комментировать
  • Хватает ли windows планшета для разработки?

    @rPman
    Я долгое время (да и сейчас, периодически) писал серверные и cli приложения на php исключительно в текстовом редакторе Far Commander с набором тематических плагинов

    Поэтому все зависит от вашей среды разработки.

    p.s. есть решение, неплохое и универсальное, подключаться терминалом к рабочей мощной машине (mstsc в windows работает объективно хорошо на медленных соединениях но критичны пинги, если вы любите отзывчивость интерфейса)
    Ответ написан
    Комментировать
  • Как сделать счетчик с автоматическим увеличением числа каждый день?

    @rPman
    Вам не нужно событие смены дня, вам нужно само число?
    Если вам нужно число, гарантированно уникальное, больше на единицу от предыдущего дня, то берете дату в формате unixtime, прибавляете смещение (когда вам нужно считать смену дня) и делите результат на (60*60*24) - целая часть результата - ваш индекс, можете вычесть какое то значение, соответствующее вашему первому запуску.
    Ответ написан
    Комментировать
  • Как сделать так, что бы скрипт работал только на телефонах?

    @rPman
    определение мобильника в студию! планшетник с win10 и клавиатурой-докстанцией это что?

    я пользовался этим https://mths.be/platform
    Ответ написан
    Комментировать
  • Как подменять вкладки?

    @rPman
    Не знаю про все вкладки, но сайты, принадлежащие одному владельцу могут быть так специально закодированы (с использованием тех же websocket), что после открытия ссылки меня текущую страницу на другую (логика может быть любой), т.е. после загрузки открытой страницы по ссылки с главной, сервер информируется об этом и пересылает сообщение на главную (связывает по сессии, коды передает в ссылке), после этого главная перезагружается.

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

    @rPman
    в 99% случаев авторизация нужна на всех страницах, после авторизации пользователь хочет видеть ту же самую страницу.

    javascript форма авторизации получается очень простой, ей почти все равно, одна страница авторизации или несколько.

    http авторизации потребует передачу текущей страницы в качестве одного из параметров в форму авторизации, с последующим переходом по этой ссылке, как недостаток - теряются введенные данные на этой странице, если они там были (например форма заказа, которую пользователь заполнил до авторизации), т.е. для ее сохранения вам опять понадобится что то изобретать, а javascript авторизация может не перезагружать страницу со всеми вытекающими бонусами.
    Ответ написан
    Комментировать