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

    @rPman
    Проведя несколько простых экспериментов, попробуйте определить, как именно браузер сортирует расширения. Это может быть порядок установки, по дате обновления или имени, или идентификатору или еще по какому признаку. Выяснив это вы легко сможете создать расширение, которое с большой вероятностью будет первым (а в вашем контролируемом окружении - с гарантией).
    Ответ написан
    Комментировать
  • Как запретить отправку определенных emails?

    @rPman
    Вы уверены что такая 'защита' вас устроит? ведь это выглядит как табличка - уважаемые спамеры, пожалуйста не спамьте мне тут.

    Спамер посмотрит, какой запрос отправляет форма, и минуя ваши javascript проверки отправит свой спам.

    Валидация должна быть на серверной стороне.
    Ответ написан
  • Атака из "режима разработчика". Как защититься?

    @rPman
    Только перенос 'опасной' деятельности на сервер вас спасет.

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

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

    https://en.cppreference.com/w/cpp/language/bit_field
    Ответ написан
    2 комментария
  • Как уменьшить вес JS файла?

    @rPman
    Удалить из js компоненты и функции которые не используются.
    Разработчик, выбравший использование этого файла, должен знать что для этого нужно сделать.

    p.s. я не верю что у вас 900кб все используются, это очень маловероятно
    Ответ написан
    Комментировать
  • Можно ли отключать часть js кода на чужой html странице?

    @rPman
    в консоли пишите что то типа body.innerHTML и плучаете в виде строки всю сгенерированную страницу
    Ответ написан
    Комментировать
  • Печать документов в браузере Chrome без Google Cloud Print?

    @rPman
    Объясните, о чем идет речь? Что такое WinPrint?

    Чтобы открыть стандартную форму печати странице в браузере, необходимо просто вызвать print(), никаких облачных принтеров, штатная форма хрома, на выбор печать в локальный pdf и выбор списка локальных принтеров операционной системы, то же самое выводится при нажатии ctrl+p

    p.s. без диалога

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

    @rPman
    Если параметры задают вероятность дискретно (на картинке кстати у вас не дискретно а сложные нелинейные зависимости, т.е. 1 встречается почти в 50 раз реже 10, смею предположить что вам ТАК не надо) на интервалах, типа от [0-10) - 50 то решайте проблему в лоб, сначала выбирайте интервал в соответствии с вероятностями (если задаете количественно, то это сумма заданых значений - максимальное значение, а интервал значения rand - соответствующее значение для суммы до этого интервала и с ним, после выбора интервала просто делаете повторный rand так как в пределах интервала вам нужно равномерное.
    Ответ написан
  • Как правильно вырезать данные html из переменной?

    @rPman
    apiReplay= $('#song'+id).text();
    Ответ написан
    Комментировать
  • Визуальное программирование на js. Куда копать?

    @rPman
    Готовое, например https://github.com/google/blockly

    Главная проблема по разработке визуального редактора программ - это осознание что это нафиг никому не нужно, после первого вау эффекта приходит понимание что организация низкоуровневой логики в блоках - не то что нужно.

    p.s. в вашем случае 99% работы - интерфейс пользователя. Хранить можно уже готовый код, на клиенте парсить заново, визуальные параметры (положение блоков на экране) хранить рядом в коментариях
    Ответ написан
    4 комментария
  • Как скачать с этого сайта файл https://abc.vvsu.ru/book/2145181393/index.shtml?

    @rPman
    Никуда оно не ссылается, Том 2.pdf - это имя файла из которого было получено содержимое этой страницы.
    Страницы - набор картинок
    скрипт там примитивный, на scroldown делает запрос
    https://abc.vvsu.ru/book/2145181393/file3
    где 3 - номер страницы
    возвращает html текст

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

    @rPman
    Если вы говорите про немодифицированные браузеры без плагинов то доступ к данным iframe возможен только в пределах того же домена (отдельный вопрос про поддомены, скорее всего можно) с единым типом подключения (http/https). Если это так то простой скрипт
    window.frames['myIFrame'].document.getElementById('myIFrameElemId')
    позволит анализировать элементы во фрейме (например по таймеру) и даже взаимодействовать с ними (например симулировать клики и заполнять поля значениями).

    Иначе это запрещено политиками браузеров (иначе это был бы ад с вопросами безопасности, ведь можно было бы открыть ваш вконтактик/банковский сайт во фрейме и делать там что хочешь).

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

    p.s. а подключить скрипт не во фрейме а на своей странице не получится?
    Ответ написан
    1 комментарий
  • Как обойти JS скрипт, мешающий спарсить страницу?

    @rPman
    Смиритесь, пол интернета уже javascript based.

    Загружать страницы headless браузерами, компоненты браузера есть по до все известные языки програмирования и платформы, основанные либо на webkit (например у java webengine) либо на основе firefox (mono webbrowser) либо iexplore (.net - webbrowser).
    p.s. php - https://github.com/chrome-php/headless-chromium-php

    Страницу получать либо прямо из языка програмирования, запрашивая webengine.document.innerHTML или делать скрин картинки, либо инжектить javascript на страницу и работать с ней как вам заблагорассудится, в т.ч. эмулировать нажатие кнопок и вообще пользователя.
    Ответ написан
    3 комментария
  • Как правильно спарсить HTML, получив размеры элементов?

    @rPman
    рекурсивно пробегаете по всем элементам на странице (начиная с document, первый потомок node.firstChild перебираете nextSibiling), положение ноды на экране берете getBoundingClientRect() и если width или height равны нулю то это невидимый объект на экране.

    Пример, вот этот модуль инжектится на страницу, перебирает все объекты и оценивает их видимость и даже отслеживает изменения по таймеру (идеологически неправильно, логичнее на хендлеры повесить колбек и отслеживать их), работает даже на слабых машинах с огромными страницами приемлемое время (сотни миллисекунд на десяток тысяч нод).
    Ответ написан
    Комментировать
  • Можно ли на js сделать динамическое добавление html?

    @rPman
    Если у вас веб-сервер отдает только статику (обычное дело для бесплатных/дешевых хостингов, да и сама статика очень эффективна и не нагружает сервер) то это нормальная практика собирать страницу на стороне клиента.

    include это частный случай шаблонизатора. Сами шаблонизаторы очень простые, фактически можно без каких либо библиотек просто использовать $('#replace_element_id').innerHTML='html text string' а саму html брать тут же из документа, разместив его например в скрытых div или как рекомендуют <script type="text/html">....</script> (будьте осторожны со скриптами внутри и валидностью верстки)

    Эта стратегия называется single page app когда абсолютно все необходимое размещено в одной странице, статике, которая загружается однократно и кешируется на клиентской стороне. Страницы веб приложения и их параметры разделяются с помощью anchor (index.html#page/arguments/etc), в этом случае будет корректна работать история браузера, разбираются они javascript простым анализом url. Никаких библиотек для этого не требуется, это стандартная фича в любом браузере.

    Если же вам нужны нестатичные данные, они загружаются с вашего веб-сервера в виде json файлов (такие файлы легко разобрать в javascript с помощью JSON.parse(text) с помощью ajax (или XMLHttpRequest если вы не хотите подключать библиотеки)
    Ответ написан
    Комментировать
  • Как получить цвет ссылки, который грузиться с стороннего сервиса?

    @rPman
    Вы явно где то ошиблись, не важно, как dom строится, с помощь javascript или загружается прямо из файла, javascript должен иметь к самой его последней версии.

    Исключение, доступ к iframe, со стороннего домена.
    Ответ написан
    Комментировать
  • Сайт не корректно отображается на ноутбуке, как быть?

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

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

    По завершению у вас метод вернет список областей, являющихся белыми.

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

    Этот алгоритм значительно шустрее, но работает только с замкнутыми областями и относительно равномерным белым цветом, т.е. если там будут разводы и переходы, будет заметно сложнее)
    Ответ написан
    Комментировать
  • Передача данных на сайт без перезагрузки?

    @rPman
    ключевые слова:
    javascript
    ajax
    websocket

    p.s. ладно вы и сами это поняли. Вы должны формировать страницу не на серверной стороне в php, а на клиентской, в javascript на onload (фреймворков шаблонизаторов пруд пруди, но никто не мешает вам делать все самим), и опрашивая либо по таймеру сервер (плохая практика) либо используя вебсокеты, ожидать от сервера данных.
    Ответ написан