Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как выполнить JS код на странице PHP?

    neuotq
    @neuotq
    Прокрастинация
    Первое что нужно понять, где выполняется ваш js код.
    Если это бекенд и сервер, то php тут вообще не нужен, выполнять код на сервере будет например окружение nodejs или аналоги.
    Если в браузере, то сам код либо добавляете в структуру html документа(теги script ):
    <script>
    console.log('Привет я код на javascript');
    </script>

    либо кладёте в публично доступное место на сервере и подключаете как скрипт(мы подключаем из того места где и корень сервера):
    <script src="/myscript.js"></script>
    В форме в action пишут куда сам браузер сделает запрос(get или post) и обычно это бекенд(тот же php)
    Вам же, для обработки в браузере, нужно перехватывать отправку формы в самом js скрипте через событие
    Допустим у формы id='form'
    function formSubmit(event) {  
      event.preventDefault();
     console.log('Форму пытались отправить');
    }
    const form = document.getElementById('form');
    form.addEventListener('submit', formSubmit);

    Опять таки, могут быть нюансы, зависит от задачи и скрипта
    Ответ написан
  • Как убрать накопление данных во втором select`e при выборе значения из первого?

    neuotq
    @neuotq
    Прокрастинация
    Добавьте строчку

    $(document).on('change','#direct',function(){
      let id = document.getElementById("direct").value;
    
        $.getJSON("ajax", {id}, function (data) {
        	$("#modules").html('');
            $.each(data, function (index, item) {
          		$("#modules").append('<option value ="'+item.ID+'">'+item.NAME+'</option>');
        	});
        });
    });

    Ну и чтобы уменьшить обращения к DOM дереву, элемент #modules можно тоже скешировать.

    $(document).on('change','#direct',function(){
      let id = document.getElementById("direct").value; // Возможно тут вам тоже не нужен let? мб const
     const modulesEl = $("#modules");
    
        $.getJSON("ajax", {id}, function (data) {
        	modulesEl.html('');
            $.each(data, function (index, item) {
          		modulesEl.append('<option value ="'+item.ID+'">'+item.NAME+'</option>');
        	});
        });
    });
    Ответ написан
  • Как отслеживать клики по виджету Instagram (внутри iframe)?

    neuotq
    @neuotq
    Прокрастинация
    С айфремом ничего путного не выйдет, можно обходить и придумывать разной степени каличности и костыльности методы (не обхода ограничения, а методы примерно узнать что пользователь хотел сделать).
    Короче гиблая история.
    Лучше тогда быстро собрать через api свое решение, там простые методы(но только чтение/получиение данных) и после реализации получится свой виджет, который можно анализировать уже как угодно с высокой точностью.
    Ответ написан
    Комментировать
  • Как найти и заменить несколько вхождений в тексте одним скриптом?

    neuotq
    @neuotq
    Прокрастинация
    Легче всего, чтобы не парится.
    Примерно так, писал без тестирования, но идея понятная надеюсь
    const replacePairs= {'было1': 'стало1', 'было2': 'стало2', 'было3': 'стало3'};
    $("body").children().each(function() {
      let currentNode = $(this);
      for (const pair in replacePairs) {
         currentNode.html(currentNode.html().replace(/`${pair}`/g, `${replacePairs[pair]}`));
      }
    });
    Ответ написан
  • Почему контекст вызова разный?

    neuotq
    @neuotq
    Прокрастинация
    Читаем документацию :
    Стрелочные функции не содержат собственный контекст this, а используют значение this окружающего контекста.
    Ответ написан
    1 комментарий
  • Как нужно искать open source проекты для дальнейшего участия в них?

    neuotq
    @neuotq
    Прокрастинация
    Лично я советую два источника:
    https://www.codetriage.com/ - специальный сервис который позволяет удобно структурировать опенсурс проекты по issue и языкам, и выбрать для начала работы.
    https://cultofmartians.com/ - интересный проект, приглашение к участию от одной из самых крутых команд в рунете. Ставят задачи, потом есть шанс и подружится с ними ближе.
    Ответ написан
    Комментировать
  • Как называется это?

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

    neuotq
    @neuotq
    Прокрастинация
    Почти 100% вероятность что на таких ссылках(если это реальная ссылка, тег a с заполненным href) стоит какой-либо обработчик js на событие click. Те ссылка и нажатия скорее всего эмулируются через стандартное событие click, при этом не учитывая что бывает клик средней кнопкой. Поэтому браузер не считает элемент активной ссылкой и средняя кнопка работает на своё заданной поведение по умолчанию(обычно это включение скролла мышкой).
    Ответ написан
    Комментировать
  • Как организовать авторизацию через соцсеть на мобильном, когда запрос перехватывает нативное приложение соцсети?

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

    neuotq
    @neuotq
    Прокрастинация
    Не выйдет. В данный момент на фронтенде подобное делать "дороговато"(хотя многое уже вот вот) , поэтому нужно делать на бекенде. Призма использует умные алгоритмы распознавания фото и наложения фильтров на основе этого.
    Короче говоря это не тривиальная задача, на порядки сложнее классических "инстаграммных" фильтров.
    Ответ написан
    Комментировать
  • Как в Datatables запустить функцию при появлении определенного значения в ячейке?

    neuotq
    @neuotq
    Прокрастинация
    Есть метод columns().data() - позволяет получать данные в ячейках из выбранного(по селектору) столбца(ов). Для отдельного столба аналогичная функция
    Там же в примерах есть вот этот код:
    var table = $('#example').DataTable();
     
    var idx = table
        .columns( '.check' )
        .data()
        .eq( 0 ) // Reduce the 2D array into a 1D array of data
        .indexOf( '0' ); //Ищем нолик
     
    if ( idx === -1 ) {
        alert( 'Нолик не найден' );
    }
    else {
        alert( 'Нолик найден' );
    }
    Ответ написан
    1 комментарий
  • Как перекинуть работу сервера на пользовательскую часть?

    neuotq
    @neuotq
    Прокрастинация
    В вашем случае, чтобы не погружаться во все эти состояния приложений и новый фронтенд с реактивными компонентами, легче всего будет использовать DataTable библиотека для Jquery с крайне широким функционалом по фильтрации таблиц, в том числе с работой только на клиенте с полностью загруженными данными изначально.
    Библиотека не сложная, почитайте документацию, поиграйтесь на сайте с примерами я думаю вы быстро решите вашу задачу.
    Ответ написан
  • Webpack-dev-server, vue-cli взломаны?

    neuotq
    @neuotq
    Прокрастинация
    Уязвимости нет, в базе потенциально опасных пакетов опечатка на тип проверяемой версии, вот и вышло вместо проверки что версия не ниже 3.1.10 он проверяет чтобы было не ниже чем 3.110.
    Насчет скриншота, я думаю он ругается так как вы при отключении интернета видимо выключили роутер(или отсоединили) и ваша внутренняя сеть упала, а значит адрес 192.168.43.201 стал недоступен.
    Ответ написан
    1 комментарий
  • Как правильно вывести нужную дату?

    neuotq
    @neuotq
    Прокрастинация
    Привет. Смотри есть такая волшебный метод: getDay(), он возвращает порядковый номер дня недели.
    Ну те вот сегодня среда, а значит:
    const today = new Date();
    today.getDay();
    //3


    Воот, значит дальше думаю все понятно, воскресенье это 0, значит определяешь день недели требуемой даты,
    путем определения остатка
    //разница между текущим днем и воскресеньем на этой неделе
    today.getDay() % 7

    PS на ошибку указал Metalofon
    Ответ написан
    3 комментария
  • Какой плагин для Lazyload вы используете?

    neuotq
    @neuotq
    Прокрастинация
    На мой взгляд здесь описано лучшее решение. Советую прочитать все статью, там же можно найти готовые сниппеты кода, а так же ссылки на полифилы для поддержки старых браузеров и ссылки на некоторые библиотеки.
    Ответ написан
    Комментировать
  • Как в Laravel Mix объединить mix.scripts([]) c mix.js() и mix.styles([]) c mix..sass() d 2 файла?

    neuotq
    @neuotq
    Прокрастинация
    Есть два метода для этих целей: combine и minify.
    Но если с css это еще относительно безопасно использоваться, то с js все же либо отдельно те библиотеки пусть будут отдельно, либо завернуть все разруливание в resources/assets/js/app.js те пусть этим занимается сборщик и запаковывает все по уму, с более высоким шансом поимать конфликты раньше, хотя снова таки, нужно исходить из кода вашего проекта в целом.
    Ответ написан
    1 комментарий
  • Редирект после отправки письма с конкретной формы?

    neuotq
    @neuotq
    Прокрастинация
    Http-редирект реализуется так:
    window.location.replace("https://ya.ru");
    Поэтому пиши все свои обработчики, проверки и тп, а затем перенаправляй на нужно тебе страницу.
    Ответ написан
  • Что выложить на Github junior frontender?

    neuotq
    @neuotq
    Прокрастинация
    github это круто, но смотреть/изучать его никто не будет. Поэтому не важно что туда выкладывать, просто покажи что умеешь им пользоваться, знаешь имеешь понятие о git в целом.
    А так лучше показывай готовый живые сайты или собранные тобой клевые штуки на https://codepen.io/ .
    ну а в целом, главное для джуна это умение и ЖЕЛАНИЕ учиться. Именно эти параметры важны человеку который тебе будет курировать или вести после найма.
    Ответ написан
    1 комментарий
  • Почему не получаю атрибут Href?

    neuotq
    @neuotq
    Прокрастинация
    Ваши переменные еще не объявлены (ранее в коде), нужно объявить их с помощью ключевого слова var, они буду видны только внутри анонимной функции
    $('a[href^="#"]').click(function () { 
     var elementClick = $(this).attr("href");
      var destination = $(elementClick).offset().top;
      if($.browser.safari){
        $('body').animate( { scrollTop: destination }, 1100 );
      }else{
        $('html').animate( { scrollTop: destination }, 1100 );
      }
      return false;
    });


    Сниппет для плавного скролла:
    // Выбираем все ссылки с хэшем
        $('a[href*="#"]')
    /* Убираем ненужные, либо те которые нужны для других целей, например для галерей, так что сюда можешь добавить список хешей на который плавный скролл не будет реагировать */
            .not('[href="#"]')
            .not('[href="#0"]')
            .click(function(event) {
                // Проверяем что все хеши на том домене
                if (
                    location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '')
                    &&
                    location.hostname == this.hostname
                ) {
                    // Находим цель
                    var target = $(this.hash);
                    target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
                    // Существует ли целевой элемент?
                    if (target.length) {
                        // Блокируем поведение по умлочанию, только в случае если анимация на понадобилась
                        event.preventDefault();
                        $('html, body').animate({
                            scrollTop: target.offset().top
                        }, 1000, function() {
                            // Callback after animation
                            // Меняем фокус (бывает полезно, обычно не мешает)
                            var $target = $(target);
                            $target.focus();
                            if ($target.is(":focus")) { // Получил ли целевой элемент фокус
                                return false;
                            } else {
                                $target.attr('tabindex','-1');
                                $target.focus(); 
                            };
                        });
                    }
                }
            });
    Ответ написан
    6 комментариев
  • Кто нужно знать для создания сайта "Конструктор"??

    neuotq
    @neuotq
    Прокрастинация
    Легче всего будет быстренько пройтись по туториалам React/Vue, понять принцип компонентов, ну а далее набросать простенький базовый редактор добавления заранее готовых компонентов, с каким-нибудь базовым редактированием данных, а далее грубо говоря сам конструктор запоминает в БД только список используемых компонентов + данные.
    В целом создание таких штук как полная копия uKIT не сложно, но таки займет приличное количество времени, в основном на создания всей сложной библиотеки доступных компонентов, и рюшечек со свистелками, но я думаю для курсовой можно и простенький вариант придумать.
    PS можно конечно же и jquery использовать, но там выйдет больше кода/библиотек, всякой каши, да и плюс легче будет сделать что-то типа WYSIWYG редактора (типа ckeditor). Так конечно тоже можно сделать кучу "красоты", но...
    Короче советую все же взять react/vue и писать на современном js.
    Ответ написан
    3 комментария