Задать вопрос
Ответы пользователя по тегу HTML
  • Как с помощью Selenium на Python найти элемент html страницы, который расположен в #shadow-root (open)?

    @rPman
    Это фича shadow dom

    Единственное ее применение, как я понимаю, - это защита от блокировщиков рекламы, ее стали внедрять популярные веб сервисы (например пикабу)

    Правда пометка open говорит что элементы внутри должны быть доступны из javascript
    Ответ написан
    Комментировать
  • Простой счётчик без БД (допустим на основе txt файла)?

    @rPman
    Если есть доступ к серверу, то настроить логи и анализировать их.
    Если есть доступ только к html страничкам, то подключить какую-нибудь стороннюю аналитику, если Россия то какая-нибудь яндекс.метрика.

    Если самому то без доступа к серверу (или ее один сервер но уже по твоим правилам) не обойтись. Тебе нужно где то хранить информацию о посещениях. Куки тут не подойдут, они хранятся у клиентов.
    но это извращение
    p.s. можно предположить, если страница достаточно популярна, с помощью webrtc реализовать децентрализованное хранилище у клиентов, каждый клиент как только заходит на сайт, тут же делится собранными данными со своими соседями (сайт тут выступает как обменник, есть сторонние сервисы которые ничего не хранят но обеспечивают 'соединение'), но передаваемых данных будет слишком много (количество клиентов * количество дней глубины сохранения посещений) и передаваться должны всё всем.
    Ответ написан
    Комментировать
  • Как с помощью регулярного выражения найти все теги?

    @rPman
    Регулярные выражения не подходят для анализа html.

    Даже в очень простых случаях они будут неоправданно сложными. Страницу нужно предварительно разобрать на составные элементы, разобрать и отфильтровать их типы (атрибут, текст, теги,..) и уже по этому разбору что либо искать.

    Настоятельно рекомендую готовые анализаторы html, они есть подо все популярные и не очень языки и фреймворки. Например для php - штатные или рекомендую simple_html_dom, код будет простым, работать будет очень быстро, все встроено в php или простой include одного файла..
    Ответ написан
    1 комментарий
  • Удаление скриптов с веб-страницы возможно автоматизировать в браузере?

    @rPman
    Если блок однозначно идентифицируется css селектором, то хватит uBlock Origin chrome, firefox.

    Иначе придется писать javascript код для поиска и удаления/сокрытия блока и инжектить его с помощью чего то типа tampermonkey
    Ответ написан
    2 комментария
  • Как сделать фоновую музыку в html на таплинке?

    @rPman
    с примерами, максимально просто: https://www.w3schools.com/html/html5_audio.asp

    p.s. платформы типа vk запрещают (в т.ч. техническими средствами) использование 'своих' мультимедиа данных на чужих платформах, что логично, с какой такой стати они должны тратить деньги на хранение и раздачу мультимедиа бесплатно?

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

    @rPman
    Открывамем гугл, пишем github browser mobile detector
    получаем ссылку на почти сотню проектов, отсортированных по популярности, первый какраз на php
    Ответ написан
    Комментировать
  • Какую технологию использовать для проигрывания видео в браузере с ручной подгрузкой байтов?

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

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

    p.s. вполне возможно что сейчас лучше/удобнее формировать .m3u8 плейлист, javascript там продвинутый у html video, но если что его можно формировать и прописывать с помощью data uri.
    Ответ написан
    Комментировать
  • Как редактировать контент сайта человеку не знающему HTML (без конструкторов)?

    @rPman
    Тебе нужна 'система управления к содержимым' (content management system), в общем случае это программа которая из текста делает html, и делает это в удобном и понятном виде.

    Либо ты пользуешься готовыми системами типа конструкторов сайтов и новыми cms типа древнего wordpress, либо пишешь его сам
    Ответ написан
    4 комментария
  • Собственное поле для ввода на чистом JavaScript?

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

    @rPman
    Если я верно понимаю ситуацию, некоторое время назад (год или два вроде бы) android обновили политику автоматического отключения экрана и меньше стало зависеть от браузера. Смотрите в настройках браузера, ищите настройки сна android (зависят от вендора)
    Ответ написан
    Комментировать
  • Можно ли передать данные из PHP в «отдельностоящий» HTML?

    @rPman
    Выбрав SSI ты заранее создал себе проблемы.
    Собирать страницу из кусочков можно на самом php, прямо в твоем process.php (именно так и делают), а с помощью mod_rewrite веб сервера скрывают .php от пользователя, оставив /process

    Так же совершенно нормально (с оговорками про поисковые системы, роботы еще не очень хорошо читают такие страницы но все решаемо) формировать страницу не на сервере а на клиенте, с помощью javascript (такой подход активно используется в SPA веб приложениях), в этом и похожих случаях необходимые переменные передаются с сервера на клиент с помощью технологии ajax (на основе fetch или XMLHttpRequest, сам ajax реализован в популярном jquery) а еще лучше с помощью websocket (но нужно на сервере уже бакэнд с его поддержкой), ведь это позволит не только клиенту запрашивать данные но и серверу оперативно передавать данные клиенту по своему желанию а не когда спросят.
    Ответ написан
    Комментировать
  • Как получить значение с querySelector?

    @rPman
    тебе так сложно нажать правую кнопку в инспекторе на нужной ветке и выбрать copy as css selector?
    не всегда оно красивое но браузер старается
    #processor > option:nth-child(1)

    по теме, воспользуйся css selector по значению атрибута
    #processor > option[value="6398"]

    p.s. тебе точно нужно выбирать по значению цены? может правильнее использовать querySelectorAll и перебирать каждое значение, проверять по условию и действовать?
    Ответ написан
    Комментировать
  • Не работает локализация setlocale в PHP?

    @rPman
    функция date умеет только англоязычные названия (формат 'F'). Для русских подменяй сам, заведи константу массив (нулевой элемент пустой, так как нумерация месяцев с нуля) типа $month_names=['','Январь','Февраль',... и для вывода пользуйся $month_names[$mon]

    Формат в date для месяца бери 'n', он выдаст номер без дополнительного символа 0 в начале (если оставишь 'm' то в массиве имен не будут найдены значения по ключу '01'...)

    p.s. есть strftime, оно умеет разные языки, но русский не умеет (хотя в системе все прописано и настроено)
    Ответ написан
    2 комментария
  • Почему не срабатывают скрипты после XMLHttpRequest запроса?

    @rPman
    console.log(xhr.status) перед if-ом, проверь, возможно у тебя твой бакэнд возвращает не 200
    а еще в отладочной консоли и networks браузера смотри, если ошибки там про это будет написано
    Ответ написан
    1 комментарий
  • Как из запускаемого в браузере локального HTML с JS создать файл в локальной же файловой системе?

    @rPman
    Есть косвенное решение - разрешить в браузере сохранять загрузки автоматически без запроса места сохранения (на сколько я знаю это поведение по умолчанию) и из скрипта сформировать файл через File, Blob или MediaSource, создать для него ссылку с помощью createObjectURL (на сколько я помню это будет data uri строчка) и кликнуть по ней.

    var file=new Blob([JSON.stringify(obj, null, 2)], {  type: "application/json"});
    var url=URL.createObjectURL(file);
    var a = document.getElementById("a"); // где то на странице невидимая ссылка
    a.href = URL.createObjectURL(file);
    a.download = 'myfilename.json';


    Как вариант строчку сделать самому и отправить его прямо в location, что то типа location.href='data:text/plain;charset=utf-8,test').

    Твое python приложение пусть ожидает файл в каталоге для загрузок, указанном в настройках браузера. Будь готов, что браузер добавить ' (xxx)' к имени файла, если такой же там уже есть.

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

    @rPman
    При открытии html локально javascript отключается (или лимитируется, точно не разбирался), сделано это чтобы открывая злонамеренный html не получить проблемы.

    Достаточно выложить файлы этого проекта в любой веб север, хоть однострочник от php (php -S 127.0.0.1:8080) и открыть этот адрес в браузере - все работает
    Ответ написан
    Комментировать
  • Как отключить распечатку документа в браузере?

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

    @rPman
    удостоверься что $trainings[1] действительно содержит побайтово "pump", причем очень часто символы могут совпадать визуально но не значением, например русская 'Р' и английская 'P'.

    выведи обе сравниваемые строки с помощью bin2hex
    Ответ написан
  • Как сделать обновление данных в реальном времени в шаблоне html на django?

    @rPman
    Есть два основных направления
    * устаревший, но не требующий javascript на клиенте - это разделение страницы на фреймы (iframe и frame) таким образом, чтобы изменяющиеся части попадали на свой фрейм
    в этом случае будет мигать не вся страница а только изменяющаяся часть, и вообще то браузеры прекрасно это обрабатывают, даже курсор в формах остается на старом месте
    Не рекомендую этот подход, он устарел и имеет смысл только если действительно нужно разрабатывать сайт для условий отключенного javascript (например tor/i2p сети).
    Очень много логики можно реализовать на основе css, язык там уже на столько сложен и многофункционален что простые вещи типа отображение и смокрытие элементов на основе кликов - обычное дело.
    Совет, чтобы мерцание не было видно, оптимизируйте ответ бакэнда таким образом чтобы ответ выдавался по времени быстрее некоторого порога (при его превышении страница будет мерцать)

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

    Собирать на стороне клиента страницу можно по разному:

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

    Интеллектуальная пересборка - полная аналогия разделения страницы на области соответственно логики их обновления как в решении с iframe, когда элементы на странице обновляются блоками ровно тогда и там, когда это нужно.

    Как частный случай обновляется даже не структура html а только текстовые значения (и даже значения атрибутов), так как очень часто обновление имеет смысл для данных а не структуры, за исключением случаев когда есть списки и размеры их меняются. Этот подход спорный, я видел когда так реализовывали мультиязыковую поддержку (т.е. по умолчанию страница как бы пустая, а затем загружается языковой json и все элементы наполняются текстом соответственно уникальным id), несет некоторую нагрузку на процессор (незначительную, никто так не оптимизирует уже давно), требует некоторого учета при верстке (нужно везде прописывать минимальные размеры) но гарантированно не мерцает даже на медленных соединениях, так как данные можно сначала загузить полностью и только потом менять на странице
    ------------------------------

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