Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как устранить ошибку Cannot set properties of null (setting 'innerHTML') в JS&?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    RTFM: Document -> document.getElementById()
    ссылка на объект типа Element соответствующий указанному ID или null, если элемент с указанным ID не найден в документе.
    Ответ написан
    Комментировать
  • Как одновременно использовать npm_module на macOS и windows?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    В общем случае - никак. Нельзя использовать идентичные бинарные и платформенно-зависмые модули на разных платформах. Во время установки ставится версия модуля для текущей платформы. Версии для других платформ не устанавливаются. Некоторые бинарные модули даже собираются на месте с использованием доступных компиляторов. Так же есть модули, которые используют системные API вызовы и тоже устанавливаются версии в соответствии с системой и платформой. Конечно, многие модули написаны на чистом JS и не зависят от платформы - вот такие модули можно устанавливать на одной платформе и переносить на другую. Но, у них могут быть зависимости, которые зависят от платформы. Поэтому у вас только один путь - виртуализация.
    1. Установить VirtualBox или UtmApp
    2. Установить х86-64 винду в виде виртуальной машины
    3. Устанавливать модули внутри винды и результат переносить на целевую машину (есть вероятность, что что-то будет не работать из-за симлинков или устанавливаемых системных зависимостей - тут только по ситуации вручную всё ставить и настраивать)
    Ответ написан
    1 комментарий
  • Почему функции по смещению свойств объектов работают только с объектами, у которых свойства состоят из букв?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Потому что в стандарте JS порядок свойств в объекте не гарантирован. Т.е., там может быть абсолютно любой порядок. Так что ваша функция бессмысленна. Если вам нужна сортировка - используйте массивы.
    Ответ написан
    4 комментария
  • Есть ли какой-нибудь заменитель pattern matching в Javascript/ECMAScript?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Если хочется больше синтаксического сахара и читабельности - посмотрите в сторону CoffeeScript.
    Ответ написан
    2 комментария
  • Как сделать "прилегание" элементов к друг другу?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Медведь? Измеряется длина пальцев медведя в пикселях и ему устанавливается смещение относительно целевого элемента на данное число пикселей. Либо в минус от ближайшей границы либо в плюс от дальней - тут как удобнее и зависит от других особенностей вёрстки. Ну или ещё какой вариант можно придумать. Плюс в данном случае изображение медведя с прозрачностью и на один пиксель с полупрозрачностью заходит на целевую картинку.
    Ответ написан
    2 комментария
  • Не могу разобраться с websocket. Что я делаю не так?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Это значит, что доступ к данному ресурсу разрешен только с определённого домена или доменов.
    HTTP -> Reference -> Заголовки HTTP -> Access-Control-Allow-Origin: https://developer.mozilla.org/ru/docs/Web/HTTP/Ref...
    Ответ написан
    Комментировать
  • Как нарисовать интерактивную схему?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Каким методом наиболее правильно сделать подобное? Интересует именно идея, реализовать сам смогу.

    Правильнее по каким именно критериям? Если же смотреть на проблему глобально и в целом с точки зрения эффективности разработки, то проще всего сделать следующее:
    1. В любом векторном редакторе сделать рисунок или схему зала (да хоть в фигме или в том же диаграмс.нет)
    2. Выдать креслам номера/ID/классы
    3. Экспортировать в SVG
    4. Добавить на странцу в виде стандартного SVG элемента
    5. Добавить стили для кресел "свободно/занято/выбрано/выбирается" и т.п.
    6. На странице в JS повесить простые обработчики на события креслам
    7. Profit

    Минимум усилий - максимум результата. Canvas тут не нужен. Только если у вас есть под рукой либа 2D/3D графики, которую вы отлично знаете и вам на ней сделать то же самое будет как два байте переслать - то кто же против-то? Тогда да, можно использовать Canvas и прочее.
    Ответ написан
    4 комментария
  • Как отображать только один из одинаковых div с id="x" предыдущий развернутый сворачивать?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    https://htmlbook.ru/html/attr/id
    Задает стилевой идентификатор — уникальное имя элемента, которое используется для изменения его стиля и обращения к нему через скрипты. Идентификатор в коде документа должен быть в единственном экземпляре, иными словами, встречаться только один раз.

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

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Используйте пользовательский скрипт - расширение для браузеров типа temper monkey и уже с ним. Если речь о вашем сайте - то в коде страницы добавить нужный скрипт.
    Ответ написан
    Комментировать
  • Какой фреймворк подойдет для задачи редактирования онлайн таблчки?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Взять готовое опен-сорс решение и запустить на своём сервере. Например:
    Ответ написан
    Комментировать
  • Почему массив с undefined не работает с методом map?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    В первой же ссылке в гугле: https://stackoverflow.com/questions/60346825/why-d...
    With map, it is possible to say: "As you step through the array, if you encounter an index that has no property, leave that property similarly unset in the output array." For all existing properties, output indices will still correspond to their input indices, and the missing properties are skipped in both the input and output.

    Array.prototype.map
    Repeat, while k < len
    
            Let Pk be ! ToString(k).
            Let kPresent be ? HasProperty(O, Pk).
            If kPresent is true, then
                Let kValue be ? Get(O, Pk).
                Let mappedValue be ? Call(callbackfn, T, « kValue, k, O »).
                Perform ? CreateDataPropertyOrThrow(A, Pk, mappedValue).
            Increase k by 1.

    Т.е. map() пропускает пустые, не инициализированные значения в массиве. Так что просто используйте метод fill().
    Ответ написан
  • Как создать таблицу?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Использовать стандартный тег таблицы, который и предназначен для создания таблиц: https://htmlbook.ru/html/TABLE
    Ответ написан
    Комментировать
  • Как подключить NPM-библиотеку web-audio-beat-detector к html-css-js проекту?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    package.json -> scripts -> build
    Думаю тут уже и так всё понятно же, да?
    Ответ написан
  • Как перетаскивать элемент мышкой, но чтобы следовал за мышкой именно той областью на которой был клик?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Вычислить разницу между координатами клика и позицией элемента, а во время движения мышки отнять её от текущей позиции курсора.
    Ответ написан
  • JavaScript не находит первый элемент и дальше не идет, как исправить?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Выполнять код только на тех страницах, где есть эти кнопки.
    Ответ написан
  • Как остановить весь скрипт js при выполнении условия tampermonkey?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    RTFM: setInterval
    Ответ написан
    Комментировать
  • Почему в WebSockets History в Burp Suite отображаются кракозябры?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    В стандарте веб-сокетов можно передавать еще и бинарные данные, а кроме того, поверх можно еще и кучу других протоколов накрутить. Так что в данном случае открываете JS код и исследуете его - что и как там передаётся.
    Ответ написан
    Комментировать
  • Чем отличается функция от конструктора и где применять то или это?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    зачем нужны конструкторы если можно пользоваться функциями и реализовать тот или иной код с помощью функции без надобности вызова его через new

    Да, можем. Точно так же можем записать всю программу в один файл и в одну функцию, в которой использовать простой goto. Вместо продуманной структуры классов. Как и не использовать фреймворки, стандартную библиотеку или можно для скорости работы программы писать её на ассемблере или даже машинных кодах сразу. Вместо простого и понятного кода в несколько слоёв абстракций, который понятен, легко сопровождается и позволяет не писать очередной велосипед в миллионный раз. Аналогично и с new Foo() - это просто всем понятная абстракция, говорящая "эта инструкция создаст объект такого-то класса и выполнит все необходимые инструкции для инициализации объекта". Думаю, мысль вполне ясна и детального объяснения не требует?
    Ответ написан
    Комментировать
  • Что происходит со свойством класса при присвоении извне?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Str.word = 'word'
    Добавили свойство word объекту Str.
    const s = new Str()
    Создали новый объект s с помощью вызова конструктора класса Str. Str и s - это два разных объекта. Str - объект типа класс, а s - это экземпляр класса. Список свойств экземпляра класса и его методы хранятся в отдельном объекте под названием "прототип", а не в самом объекте класса.
    Рекомендую изучить механизмы работы прототипного наследования в мире JS и как работают конструкторы и классы: JavaScript-Garden -> constructors, JavaScript-Garden -> object.prototype
    Ответ написан
    Комментировать
  • Как фильтровать массив в массиве методом filter?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Для начала вам нужно реализовать и понять сам алгоритм вашей задачи. Попробуйте расписать ручкой его на бумажке - что, как и в какой момент происходит. Реализуйте его в коде на простом цикле. Разберитесь в потоках управления и данных - что, куда и когда направляется. И вот уже с этим пониманием приступайте к реализации задачи с использованием требуемого метода и тогда у вас всё получится легко и просто.
    Ответ написан
    2 комментария