Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как делать post и get запросы с https на http?

    @rPman
    без локального https прокси post запросы никак (есть опция командной строки браузера отключающая запрет), с get запросами можно попытаться выкрутиться, например картинки загружаются. Пробуйте грузить данные в script type=text/html
    Ответ написан
    Комментировать
  • Как сделать автовоспроизведение audio в chrome?

    @rPman
    p.s. скрол считается действием пользователя?
    Ответ написан
  • Можно ли через js-файл на рабочем столе Windows загрузить файл?

    @rPman
    Уже не осталось инсталляций windows в которых не было бы .net framework, а это значит из коробки в системе готовый компилятор .net - c#, js# и vb# со всей мощностью .net, т.е. можно скомпилировать exe файл и запустить его.

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

    Например C:\Windows\Microsoft.NET\Framework64\v4.0.30319\jsc.exe (там есть каталоги для x86 версии а так же по каталогу для каждой версии .net)
    Ответ написан
  • Как сгенерировать документацию из большого html-документа?

    @rPman
    Готового решения не посоветую, но очень простое направление могу дать.

    Пишите примитивное webbrowser(c#)/chromium/webkit приложение - т.е. на любом языке программирования подключаете библиотеку для отображения веб страницы (они есть везде, майкрософтовские .net на интернет эксплорере, на mono будет что то на основе firefox, на java я делал на webkit), причем все на столько просто что проект это пара шевелений мышкой в построителе формы или примитивный пример из документации на 10 строчек.

    Затем, добавляете простейший код, который будет открывать вашу страницу и на onload делать скриншот контрола, делать скрол и снова, пока документ не закончится. Из собранных скриншотов вы можете собрать pdf простейшей командой imagemagic.

    Бонусом, вы можете, изменяя размер контрола (а он может уходить за границы видимой части окна) до любого, например таким образом когда то давно я делал приложение которое скринило гугловские карты 8к на 8к разрешения, открывая нужное место в окне соответствующего размера (оперативная память при этом на создание png/tiff/jpeg требовалось много).
    Ответ написан
  • Как совершить AJAX запрос через прокси?

    @rPman
    Я так понимаю хотите чтобы с пользовательской стороны шли подключения да еще и через прокси, это что за изощренный метод сокрытия деятельности?

    Теоретически это возможно, так как http прокси это вебсервер к которому нужно делать запрос с указанием нужного адреса в заголовках, копайте в сторону XHTTPRequest
    Ответ написан
  • Сущетсвует ли способ получения информации с веб страницы в автоматическом режиме с помощью JS без хака?

    @rPman
    Да, если у вас нет возможности установить на пользовательские машины ваше приложение (или к примеру плагин в браузер) то у вас только один путь - написать веб приложение и попросить заходить на него пользователям.

    Тупой пример - открывайте вебсайт в iframe и обновляйте по таймеру. Чуть более правильно - вы должны найти запрос на сервер, с помощью которого вы сможете определить, изменились ли данные или нет, и на своем веб-сервере в бакэнде выполняйте его в цикле с интервалом, как только данные изменились - отправляйте по вебсокет требование обновить страницу (iframe) у пользователей.

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

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

    @rPman
    С точки зрения программирования - никаких проблем, кроме только что мизерного оверхеда на процессор, работа со строками немного медленней чем с числами или прямыми ссылками на методы (например передавать объект, у которого вызываете виртуальный наследуемый метод translate).

    С точки зрения итогового результата - плохо, теряется контекст перевода.

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

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

    @rPman
    да
    Ответ написан
    Комментировать
  • Как фильтровать по параметрам в datatables с базой в 200к записей?

    @rPman
    кто то должен рулить фильтрацией данных, совершенно неприемлимо, если вы это будете делать на клиентской стороне, а значит этим должен заниматься бакэнд, скорее всего там у вас sql-база данных, а значит можете смело делать запросы вида select * from zzz where yyy=xxx limit 30 offset page*30

    p.s. если данные в таких случаях заметно нагружают базу данных, то можно создавать временную таблицу, в которую загружаете id отфильтрованных записей, а уже из нее получаете текущее окно (2 колонки id и num)
    Ответ написан
    Комментировать
  • Как отслеживать все AJAX запросы посланные из IFRAME / перехват AJAX запросов?

    @rPman
    плагином в браузере, каким-нибудь tempermonkey инжектите свой скрипт в чужой сайт, зменяете их метод ajax или чем они шлют и смотрите
    Ответ написан
  • Websocket как изменить входящее сообщение?

    @rPman
    попробуйте подменить метод на свой, что то типа такого:
    https://stackoverflow.com/questions/40341197/how-t...
    WebSocket.prototype.oldSend = WebSocket.prototype.send;
    
    WebSocket.prototype.send = function(data) {
         console.log("ws: sending data");
         WebSocket.prototype.oldSend.apply(this, [data]);
    };
    Ответ написан
  • Постоянное обновление в реальном времени куска кода, полученного по XMLHttpRequest?

    @rPman
    если у вас 1 клиент, то setInterval - нормально, иначе нагрузка на сервер квадрат от количества пользователей

    Правильно
    - использовать (устаревший способ) - http long pooling (когда клиент спрашивает у сервера, есть ли события, а тот удерживает соединения, выдавая туда пробелы раз в минуту, а как появится событие - выдает его и закрывает http, т.е. клиент тут же его переоткрывает для следующего)
    - либо, лучший способ - websocket, примеры ищите их тьма, но нужно чтобы сервер был websocket, настоятельно рекомендую, если вам надо php - phpreact
    Ответ написан
    4 комментария
  • Как валидировать большие файлы без загрузки на сервер?

    @rPman
    Гуглить javascript image manipulation или что то похожее, там очень много библиотек

    mime type можно определить по содержимому, тут пример или тут вручную
    Ответ написан
    Комментировать
  • Как распознать картинку с камеры на javascript и найти её в базе?

    @rPman
    Потому что задача не такая простая как хотелось бы, да, перцептивное хеширование и opencl верное направление, но ваша проблема именно в том что вы работаете с камерой а не типличными условиям и готовыми картинками.

    Камера - это повороты и перспективные искажения, проблемы с неравномерной яркостью и мерцанием освещения, инертностью матрицы и глюки алгоритмов пост обработки в смартфонах.

    Вы зависните глубоко и на долго тупо на определении границ вашего изображения, и хорошо, если бы оно было бы геометрически простым, типа прямоугольник
    Ответ написан
    Комментировать
  • Как сделать так, чтобы ключи в объекте шли по очереди даже после удаления?

    @rPman
    Никак, только пересозданием объекта
    Ответ написан
    Комментировать
  • Как найти одинаковые значения в двух массивах?

    @rPman
    Создаем на основе одного массива индекс (инвертируем ключи и значения), преобразуя массив в объект.
    А затем простым перебором элементов второго массива проверяем наличие по ключу в инвертированным.

    т.е. итоговая трудоемкость просто линейная (на самом деле там умноженное на логарифм но работа с ключами в javascript очень эффективна, на столько что этот логарифм вы заметите только на ОЧЕНЬ БОЛЬШИХ массивах, в крайнем случае можно использовать Map, он точно быстрый.
    Ответ написан
  • Как я могу получить историю google chrome из electron?

    @rPman
    Первая же ссылка в гугле на тот же stackoverflow, уж адаптировать код для nodejs будет не сложно?

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

    @rPman
    key-value это обычно документ-ориентированный подход, т.е. когда вся необходимая информация хранится в виде объекта.

    В вашем случае это будет
    comment_1:{data:comment_data,tags:[tag_1,tag_2,tag_3]}

    справочники храните как отдельные объекты
    tag_1:tag_data

    И не заводите прослойку из id, это лишнее,.. точнее старайтесь чтобы идентификатором была сама строка (если она уникальная) тогда вам не придется городить целый уровень абстракций.

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

    @rPman
    Плагин к браузеру greasemonkey/tampermonkey позволит дергать ваш javascript по условию открытия страниц по regexp с полными правами доступа (т.е. включая iframe). Есть нюанс по одновременно открытым вкладкам, так как вкладки не в фоне работают с меньшим приоритетом и скоростью (а некоторые веб-приложения сами отслеживают что не в фоне и отключают часть активности), это решается вообще своим браузером на базе готового контрола типа webkit или .net WebBrowser (для любой платформы такой есть, код браузера строчек десять получается).

    Кликать либо симулируя события либо дергая метод $('селектор').click(); Встречаются нюансы с работой тега select или поддержкой посимвольного ввода данных в умные input но решаемые.
    Ответ написан
    Комментировать