• Drag'n'Drop и выделение мышью текта?

    @Mazino
    В зависимости от того, что именно вы не хотите выделять, решение может быть разным. Если речь про droparea, то будет достаточно css user-select: none; на элементе. Если нужно предотвратить выделение вообще любого текста, то может подойти
    (window || element).ondragstart = e => {
      window.onselectstart = e => false
    }
    (window || element).ondragend = e => {
      window.onselectstart = null
    }

    первое что пришло в голову, ибо вариантов достаточно много
    Ответ написан
    Комментировать
  • После выполнения js функции идет обновление страницы? Если да, то как это предотвратить?

    @Mazino
    Если выполняемая функция предполагает вызов такого поведения, то да. Например submit() (вызывает событие submit) у html формы, вызовет POST на адрес определенный у формы. ajax запросы в общем случае тоже делают это. Способ предотвращения: получить соответствующее событие event, имеет метод preventDefault(), который отменяет стандартное поведение браузера. Перезапись location.href или location.host или вызов location.reload
    переходят или перезагружают страницу соответственно
    Ответ написан
    Комментировать
  • Как перенести данные из URL в input?

    @Mazino
    window.location хранит текущее состояние адресной строки. Так, что если вы разобрались с кодом выше, можно подставить вместо статической строки. Собственно комментарий //window.location.href в вашем коде намекает.
    Ответ написан
  • Как проверить в начале весь массив на одно условие, а потом на другое?

    @Mazino
    инлайн вариант за 1 опциональный проход:
    const fruits = []
    fruits.reduce((c,v,k,a) => v == 'Банан' ? (a.splice(k), v) : v == 'Яблоко' ? v : c, null)

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

    @Mazino
    По идее в любом месте, кроме main файла:
    const { remote } = require('electron')
    remote.getCurrentWindow().close()


    в main файле вместо remote у вас есть app.

    там же должен быть подобный код
    win.on('closed', () => {
        win = null
    })
    
    app.on('window-all-closed', () => {
      if (process.platform !== 'darwin') {
        app.quit()
      }
    })
    Ответ написан
    Комментировать
  • PHP или Javascript?

    @Mazino
    На nodejs проще и удобней писать сервер, особенно в связке с websocket. И в принципе он быстрее чем php. Но фреймворков с богатой экосистемой на php больше. Берите, что нравится, оба языка будут востребованы.
    Ответ написан
  • Как обработать форму с помощью JavaScript?

    @Mazino
    Все зависит от с каким бекендом идет работа.
    HTML:
    <form name="form">
      <input type="text" name="name" value="user">
      <input type="text" name="password" value="qwerty">
      <input type="submit">
    </form>


    JS:
    const form = document.querySelector('form[name="form"]')
    form.addEventListener('submit', e => {
      e.preventDefault()
      const data = new FormData(form)
      // Далее будет код построения запроса к серверу и отправка данных формы.
    })

    В зависимости от бекенда, если это к примеру json api, вы можете обработать форму и в таком варианте:
    const data = JSON.stringify(Object.fromEntries(new FormData(form).entries()))

    Или можно вручную обойти элементы формы, задать свои имена для полей, проверить валидность и.т.д
    PS разумеется это только обработка самой формы, еще нужно построить запрос и передать в него данные формы, так же нужно обработать ответ, если не хотите перезагружать страницу. Вы так же можете сами наполнять объект FormData, не передавая ему форму для обработки.
    Почитать об этом можно здесь и здесь
    Ответ написан
    Комментировать
  • Как к выделенному тексту добавить класс?

    @Mazino
    Ну вы пытаетесь у строки вызвать свойство classList, а поскольку оно undefined вы получаете эту ошибку, вам нужно этот текст сначала обернуть в какой-нибудь html тег, а уже к нему добавлять классы
    Ответ написан
    Комментировать
  • Почему не срабатывает Try Catch в JavaScript?

    @Mazino
    Если хотите сахарно работать с запросами в trycatch стиле посмотрите на axios.
    Он такой код как:
    async getData() {
      try {
       const { data } = axios.get('/url') 
      }catch(e) {
        console.error(e)
      }
    }

    Обработает так как вы того ждете. Но сразу скажу, что в данном контексте он делает что-то вроде:
    async getData() {
        try{
          const response = fetch('/url')
          if(response.status>= 400 && response.status<= 599) throw new Error(`Http exeption code: ${response.status}`)
        }catch(e){
          console.error(e)
        }
      }
    Ответ написан
    Комментировать
  • Отправка формы form автоматически как?

    @Mazino
    Если соответственно вопросу, то:
    document.querySelector('<Тут должен быть валидный css селектор для формы.>').submit()

    Но это сработает если форма построена правильно с точки зрения html т.е заполнены такие поля как action, метод и.т.д. Управление переходом можно осуществить на стороне бекенда, у вас php как я понял. Можно отправить адрес для перехода в заголовке Location. Стандартное поведение браузера заставит его перейти по тому адресу, который он найдет в Location: (url) ответа.
    В ином случае может потребоваться обработка и специфическая сериализация, как и построения запроса, тогда все это ложится на ваши плечи.
    Ответ написан
    Комментировать
  • Библиотека для создания таблиц с фильтрами и сортировкой?

    @Mazino
    https://datatables.net/ - вариант на jQuery
    Насколько я знаю если поискать,есть варианты для vue/react/angular
    Это конечно не гугл таблицы, но то, что ты просил, оно сможет и даже больше
    Ответ написан
    Комментировать
  • Как запустить метод объекта в setInterval?

    @Mazino
    setInterval переопределяет контекст функции, которую вы послали.
    class Step {
      constructor(pos) {
        this.step = pos;
      }
    
      run = () => {
        this.step += 1
      }
    }

    У стрелочных функций контекст всегда определен окружением, в котором она вызвана
    Ответ написан
  • Как достучаться до response в ошибке и вывести текст "User with this username already exists" в консоль?

    @Mazino
    Зачем вам конструкция try catch, если вы ее используете не правильно?
    onSubmit: async formValues => {
              console.log('submit', formValues);
              setSubmitting(true);
              try {
                  const { token: { token } } = await api('api/auth/register', {
                      method:'POST',
                      body: JSON.stringify(formValues)
                  });
                  localStorage.setItem('myToken', token)
                  console.log('Result!', token)    
                  history.push("/home"); 
              } catch({ status, data: [{ message }] }) { // без понятия что вы используете в качестве обработчика запросов и как он пакует данные, но все они работают на базе одного api, а у них данные примерно так и разложены. Исследуйте этот вопрос, с чем в работаете и что происходит.
                  if(status === 400) console.error(message); 
              } finally {
                  setSubmitting(false);
              }   
          },
    Ответ написан
  • Укажите где моя ошибка?

    @Mazino
    А консоль открыть не пробовали? extends - зарезервированное слово
    Ответ написан
  • Как встроить скрипт в DOM при скролле страницы?

    @Mazino
    function addSctipt() {
        const script = document.createElement('script')
        script.src = "url"
        document.body.append(script)
        document.removeEventListener('scroll', addScript)
      }
      document.addEventListener('scroll', addSctipt)
    Ответ написан
    Комментировать
  • Kак из строковой массив сделать num arr?

    @Mazino
    ["1, 3, 4, 7, 13", "1, 2, 4, 13, 15"].join`,`.split`,`.map(Number)
    Ответ написан
    Комментировать
  • Как изменить атрибут aria-expanded?

    @Mazino
    На JQuery это выглядит так:
    $('#columns').attr("aria-expanded", false);
    Ответ написан
    Комментировать
  • Как я могу получить данные из этой ссылки?

    @Mazino
    Я так особо и не понял в чем суть вопроса. Если есть доступ к серверному коду, то нужно в месте где собираются данные для отправки, добавить параметр в функцию кодирования json, пример:
    $dataArray = ['Название' => 'значение']
    echo json_encode( $dataArray, JSON_UNESCAPED_UNICODE)

    либо использовать битовую маску 256 - эквивалент JSON_UNESCAPED_UNICODE
    Вообще на клиенте тоже можно распарсить этот текст в json используя JSON.parse(responseData)
    Ответ написан
    Комментировать
  • Как в расширении для Хрома кнопками изменять размер Popup окна?

    @Mazino
    //Вешаем обработчик событий на контейнер с popup
    document.querySelector('.container')
      .addEventListener('click', ({target}) => /<Id твоей кнопки>/.test(target.classList.join('')) 
       ? /** Делаешь, что тебе нужно */ 
       : false)/** Ничего не делаешь /*

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

    @Mazino
    div = document.querySelector('.wices');
    if(!div.innerHTML) div.style = "display: none";
    Ответ написан
    Комментировать