Ответы пользователя по тегу JavaScript
  • Можно ли работать с localstorage для мини приложений вк?

    Jeer
    @Jeer
    уверенный пользователь
    Ответ написан
    Комментировать
  • Почему React не видит img файл?

    Jeer
    @Jeer
    уверенный пользователь
    Привет,
    src реакта это файлы для разработчика, внутри не должно храниться картинок и прочих ресурсов. Если все же это прям необходимо, тогда нужно явно прописывать это
    Обычно изображения, иконки и прочие публичные ресурсы лежат в папке public, которая располагается рядом с папкой src.

    собственно, таких проблем нет, если создаешь каркас приложения через консоль npx create-react-app [name]

    и еще у тебя ошибка в пути, из бекенда /sneakers, а на схеме /items - пути должны совпадать
    Ответ написан
    1 комментарий
  • Как работает библиотека UART.js?

    Jeer
    @Jeer
    уверенный пользователь
    - верно ли я понимаю что в строке 1 указывается функция которая срабатывает при получении данных
    а строка 2 при закрытии соединения ?

    Начал писать ответ и потом сообразил, что строка 1 имеется в виду комментарий, а не строка
    В целом да, всё верно, на внешнее событие 'data' запустится ваша функция, в параметр которой будет передано что-то полезное. Можно подробнее почитать по словам "вебхуки js" или более общее "events js"

    По второму, ты можешь отправлять по протоколу UART какие-то команды. Это вот один из примеров, что можно прям какой-то исполняемый код вернуть и в коллбеке вернётся результат вообще всего, что с этим кодом было, включая echo, скорее всего это должно значить просто вывод в консоль. Ну тут что сказать, просто запусти и посмотри, что вернется
    Ответ написан
    Комментировать
  • Почему не скрывает второй одинаковый classname?

    Jeer
    @Jeer
    уверенный пользователь
    Привет,
    Ты можешь поставить точку останова или написать просто слово debugger в нужном месте и в прерывании посмотреть значения всех переменных, что вычисляется в условиях if - этого должно быть достаточно, выглядит не сложно, чтобы самостоятельно разобрался
    более простой вариант пиши больше логов, пусть и через консоль лог, но лучше, конечно, учиться пользоваться дебаггером
    чтобы тут помогли, нужно сделать этот пример в сандбоксе, чтобы люди могли самостоятельно потыкать, гадалками работать никому не хочется. Если заходит в нужную ветку, но не отрабатывает .hide(), сначала выведи console.log($(".b24-form-control-label:last"))
    Ответ написан
    Комментировать
  • Как перезагрузить страницу после деплоя?

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

    Jeer
    @Jeer
    уверенный пользователь
    возможно, вам нужно покурить расширения для хрома
    Пишете расширение для определенного (не вашего) сайта. У него можно сделать небольшой интерфейс, выпадающее окно с настройками (включить/выключить и может еще какое расписание нужно)
    У расширения будет доступ к дом-модели, сможете по селекторам выбирать какие-то кнопки и прожимать на них клики
    Запросы можно делать на тот же домен без проблем, если нужны запросы на другой домен (например, отправлять статистику на ваш сервер, то нужно на вашем сервере будет настраивать cors политики)
    Примера хз, под рукой нет, я такое давным-давно делал
    Ответ написан
    Комментировать
  • Как в реактивных формах Angular предотвратить ввод определённых символов?

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

    Jeer
    @Jeer
    уверенный пользователь
    Если элемент на страницу добавляется динамически, то через getElementsByClassName его получить нельзя. Гуглите в эту сторону, я не помню, как нужно обходить (раньше в jquery был метод .live, но те годы давно прошли, что-то должно быть в html5 нативное)
    Ответ написан
    Комментировать
  • Как дебажить JavaScript Visual Studio 2022?

    Jeer
    @Jeer
    уверенный пользователь
    Кто пробовал пользоваться отладчиком js в студии часто хапали проблемы. Я при установке студии сразу выключаю связь с браузером, это сделано коряво и неудобно.
    Все веб разработчики пользуются средствами разработчика хрома.
    если нужна точка останова, можно написать в js слово debugger и там остановится само, не нужно будет искать место
    в консоли можно получать(смотреть) и изменять значение переменных, это бывает удобно
    ну и третья полезная вкладка network, там можно смотреть, какие именно запросы и какие в них данные уходят/приходят
    Этого достаточно и удобно пользоваться
    Ответ написан
    Комментировать
  • Как прочитать куки с одного домена на другом?

    Jeer
    @Jeer
    уверенный пользователь
    Никак.
    Ограничения безопасности
    Ответ написан
  • Как всё таки работает асинхронность?

    Jeer
    @Jeer
    уверенный пользователь
    мне понравилась коротенькая книжка
    Асинхронное программирование в C# 5.0 | Дэвис Алекс
    Там всё разложено по полочкам не только под c#, сама концепция
    https://www.ozon.ru/product/asinhronnoe-programmir...
    Ответ написан
    Комментировать
  • Как очистить textarea с помощью javascript?

    Jeer
    @Jeer
    уверенный пользователь
    Привет,
    Нужно внутри функции sendMessage обработать такую команду:
    function sendMessage() {
                var messageField = document.getElementById("message");
                var userNameField = document.getElementById("username");
    
    if(messageField  == '/clear'){
       var chat = document.getElementById("messages");
       chat.value = '';
    } else {
       var message = userNameField.value + ":" + messageField.value;
       ws.send(message);
    }
                messageField.value = '';
            }
    Ответ написан
    Комментировать
  • Как получить данные из JSON?

    Jeer
    @Jeer
    уверенный пользователь
    Привет,
    Вопрос задан чёрти как, плюс совершенно не известны технологии и ваша логика.
    Есть некая веб страница в браузере, на неё заходят редко и там необходимо отобразить какие-то табличные данные, которые приходят с гугл таблиц. Вариант хранить дубль всех данных на клиенте вытекает в дополнительные сложности по синхронизации данных.
    Намного надёжнее и проще просто поставить прелоадер, 2-3 секунды единоразово для загрузки данных - это нормально.
    Если у вас spa приложение, и на эту страницу _обязательно_ зайдут после входа в приложение, вы можете сделать предварительную загрузку просто в какой-то шаредный сервис. Минус в том, что данные будут загружаться всегда, даже если пользователь не пойдёт на эту страницу.
    Далее, веб-браузер не может общаться ни с какими файлами на компьютере, это безопасноть. Есть яваскриптовые объекты, которые привязаны к веб странице. Разумеется, после обновления страницы эти данные чистятся.
    Если вам нужно постоянное хранение данных, необходимо использовать инструмент localStorage. По сути это key-value база данных в браузере. В ней можно разместить до 5 мегабайт данных (возможно, для разных браузеров различается, не знаю). Сами механизмы синхронизации разбирать не буду, мало информации
    Ответ написан
    Комментировать
  • Фреймворки и проверка на валидацию/ошибки?

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

    Jeer
    @Jeer
    уверенный пользователь
    Привет, из комментов я узнал, что вы пишете на пхп, поэтому с кодом помочь не могу. Но, тем не менее, смутило, что вы не смогли найти примеров в гугле. Забейте php chat websoket пример - результатов море.
    Обычно библиотеки по ним реализуют паттерн издатель-подписчик.
    Когда клиент устанавливает подключение с сервером по вебсокету, ему выдаётся некий идентификатор.

    Соответственно, на сервере хранится список установленных подключений.
    Далее с сервера вы можете отправлять сообщения либо по идентификатору какому-то конкретному клиенту, либо есть команда "отправить всем" - не важно сколько клиентов у вас подключено.
    У отправляемого сообщения есть тип сообщения (можно использовать один тип, отправляя json и далее его разбирать на клиенте) а клиенты в браузере подписываются на рассылку.

    Следующий вопрос, допустим, у вас у клиента1 открыт на экране список пользователей. Установлено соединение по вебсокету и вы подписаны на событие "изменение пользователя". Когда пользователь2 редактирует свой профиль или регистрируется в системе, до того, как запись попадёт в базу данных, вы эту запись отправляете в библиотеку с вебсокетами. Там делаете мгновенную рассылку на всех подключённых клиентов, событие "изменение пользователя" и либо айдишник пользователя, либо всю модель пользователя можно упаковать в json и отправить целиком.
    Далее на клиенте вы получаете это сообщение и обновляете данные на странице.
    Под такую логику подходят spa-решения, например, реакт или ангуляр, где можно держать один сервис пользователей, который будет выполнять роль прокси, либо забирать первым запросом доступные данные, либо отслеживать изменения по вебсокетам
    Ответ написан
  • Как реализовать аудиоплеер html & js?

    Jeer
    @Jeer
    уверенный пользователь
    Привет,
    Вам нужно гуглить html5 audio custom controls
    Есть куча примеров, в том числе в песочнице с открытой вёрсткой
    Ответ написан
    Комментировать
  • Как реализовать внешний поиск JS?

    Jeer
    @Jeer
    уверенный пользователь
    Если на сайтах не настроены политики CORS требуемым образом (разрешение на получение данных со сторонних доменов), то js-ом вы не сможете запросить с них информацию.
    Вам необходимо делать на своём сайте бекенд в роли прокси, то есть, ваш сайт делает запрос на ваш бекенд с поисковой фразой. А уже сервис бекенда обращается к разным сайтам, парсит, склеивает и что там ещё надо делает и отдаёт обратно ответ на ваш фронт
    Ответ написан
    Комментировать
  • Как разрешить айфрейму обращаться к переменным страницы?

    Jeer
    @Jeer
    уверенный пользователь
    Привет.
    страница открыта с десктопа, не сайт в интернете

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

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

    П.с. тут нужно смотреть на задачу. Либо у вас действительно какое-то "кулхацкерское" решение, либо вы копаете не в ту сторону.
    Ответ написан
    Комментировать
  • Заполнение формы на стороннем сайте?

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

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

    Панель управления -> Брендамуэр виндоус -> Дополнительные параметры
    - Далее выбираем входящие соединения и создать правило...
    - Выбираем для порта
    - Далее указываем порт
    - Ставим разрешить подключение
    - Ставим все галочки
    - Даём имя
    Готово.

    Далее ваш сайт должно быть можно открыть с телефона. Делаете какое нужно api на своём сайте и передаёте в него какие нужно переменные
    Ответ написан
    Комментировать