Ответы пользователя по тегу JavaScript
  • Как вставить содержимое в iframe без src?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Как вставить содержимое в iframe без src?

    document.write():
    1. Создать iframe на странице.
    2. Получить ссылку на document внутри п1.
    3. Вставить данные внутрь п2, используя document.write().
    и будут ли работать при таком решении ссылки через proxy, которые находятся внутри iframe?

    В рамках указанного домена - да, если домен другой - зависит от CORS сервера.
    Ответ написан
    Комментировать
  • Из-за слайдера не открывается всплывающая форма?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    В чем может быть проблема?

    Слайдер fancybox определяет, показывать ему слайдер или нет на основе класса в < html> теге, если там класс десктопа .desktop.portrait (в десктопной версии сайта), то слайдер инициализируется верно и затем может быть открыт по команде, а вот если там класс смартфона .android.mobile.landscape (в мобильной версии сайта), то слайдер пытается инициализироваться, не находит нужный класс в < html>, но все равно продолжает инициализацию, в следствие чего - сыплются ошибки.
    655f00550eb57787059247.png
    Ответ написан
    Комментировать
  • Как найти вхождения #слово в JS?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Как из строки
    привет #username text text #username2
    сделать массив
    [привет, #username, text text, #username2]

    https://regex101.com/r/CtgWXN/1
    const string = "привет #username text text #username2";
    const regex = /#\w+|[^#\s][^\s#]*(?:\s+[^#\s][^\s#]*)*/g;
    console.log(string.match(regex)); // ['привет', '#username', 'text text', '#username2']
    Ответ написан
  • Как проверить соответствует ли одна строка другой?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Можно регулярками, но я бы использовал специализированную библиотеку path-to-regexp:
    import pathToRegexp from 'path-to-regexp';
    
    // real route
    const route = '/notifications/:id/';
    
    // regexp
    const keys = [];
    const regexp = pathToRegexp(route, keys);
    
    // test route
    const testRoute = '/notifications/123/';
    
    if (regexp.exec(testRoute)) {
      console.log(`URL match from: ${route}`);
    } else {
      console.log(`URL not match from: ${route}`);
    }
    Ответ написан
    Комментировать
  • Пропадают данные localStorage после нескольких перезагрузок?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    В представленном коде нет мест, где происходит принудительная очистка localStorage после перезагрузки. Вероятнее всего - проблема в браузере, особенно если настроены определённые настройки конфиденциальности или режим инкогнито.
    Ответ написан
    Комментировать
  • Можно ли поставить преролл поверх окна с видео?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    можно ли поставить поверх встроенной рекламы свой преролл чтобы воиспрозвелись оба?

    Можно, но не в самом iframe, а сделав это слоем выше iframe.
    Такое возможно реализовать с помощью JS?

    Возможно.
    Не нужно расписывать как сделать

    Хозяин - барин.
    Ответ написан
    Комментировать
  • Как исправить ошибку при редактировании сайта?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    - Включить другую тему и попробовать снова нажать "Редактировать сайт".
    - Отключить плагины и попробовать снова нажать "Редактировать сайт".
    - Возможно, у Вас слишком древний браузер, который не поддерживает JS метод .at(), зайдите с современного браузера и снова нажмите "Редактировать сайт".

    Попробуйте и сообщите о результате.
    Ответ написан
    9 комментариев
  • Как изменить скрипт перезагрузки стараницы?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Можно ли сделать при этом перезагрузку на определённую ссылку

    Изменить перезагрузку страницы на переход по указанному url (Window.location):
    // window.location.reload();
    window.location= 'http://example.com/next';
    Ответ написан
    1 комментарий
  • Не приходит в голову алгоритм лучше. Как сделать лучше?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Ну как минимум цикл в повторяющихся местах:
    for (let i = 0; i < clickCount; i++) {
      elementstypeWorkFirst[i].innerHTML = '';
    }
    Ответ написан
    5 комментариев
  • Как добавить количество дней к текущей дате?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Зачем Вы добавляете дни к настоящей дате, а не к дате с обучением?
    // ...
    // var newDate = moment().add(missingDays, 'days');
    var newDate = endDate.clone().add(missingDays, 'days'); // update
    // ...
    Ответ написан
  • Какая самая быстрая и эффективная библиотека в JS для работы с деньгами?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать
  • Как сделать многостраничный сайт (онлайн-каталог)?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    На сайте могут быть представлены сотни позиций товаров, вручную верстать каждую страничку это бред, наверняка существуют какие-то оптимизированные методы для создания подобных проектов, хотел бы попросить рассказать о них, ибо я не смог найти нормальной информации по этому поводу.

    Есть, называется - cистема управления содержимым (CMS, Content Management System).
    вручную верстать каждую страничку это бред

    В большинстве CMS, Вы создаете шаблон страницы, который будет выводить "содержимое" страницы. Рекомендую сразу гребсти в сторону WordPress+WooCommerce, а когда его станет Вам не хватать (и Вы поймете, чего именно не хватает) - выберите себе более узкоспециализированный инструмент.
    Ответ написан
    2 комментария
  • Не могу определиться с пайплайном, как разобраться?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Изучил основы JavaScript, понял что всякие манипуляции DOM мне не нужны, потому что это не используется больше

    Где и кем больше не используется?
    Думаю такой, может мне надо выучить React?

    Но есть почему-то ощущение что React в чистом виде мне не нужен, чтобы пользоваться Next.js.

    NextJS: The React Framework for the Web...
    А в "грязном" виде React какой?
    Я остановился и понял что я занимаюсь какой-то фигней. Что я хватаю отовсюду понемногу знаний, но они не складываются в общую картинку.

    Собственно вопрос: по какому пути лучше пойти, чтобы потихоньку прийти к желаемому?

    Все так и есть. Вам необходимо изучать JS в следующем порядке:
    1. Vanilla JS.
    2. React.
    3. Frontend React + NextJS.
    4. Fullstack React + NextJS (+NestJS?).
    При этом чтобы не потратить время впустую на изучения вещей, которые абсолютно не нужны.

    А вот здесь интересный момент. Видите ли, исходя из количества вакансий, NodeJS и все ее производные в качестве backend фреймворков - не сильно востребованы, относительно более специализированных backend языков/фреймворков. Если у Вас нет особой страсти к NodeJS, то рекомендую сфокусироваться лишь на frontend (учитывая, Ваш контекст), а затем (если будет возможность) - учить в дополнение к frontend более специализированные backend языки/фреймворки.
    Ответ написан
    2 комментария
  • Как определить изменение состояния видимости элемента?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Расширю ответ imko кодом:
    // return true, if element visible
    function isVisible(element) {
      return window.getComputedStyle(element).display !== 'none';
    }
    
    // MutationObserver
    const observer = new MutationObserver((mutations, obs) => {
      const modal = document.querySelector('#modalWindow'); // modal selector
      const dropdown = document.querySelector('#dropdownMenu'); // dropdown menu selector
    
      // check is visible?
      if (isVisible(modal) && isVisible(dropdown)) {
        console.log('Element is visible');
        obs.disconnect();
      }
    });
    
    // config
    const config = {
      attributes: true,
      attributeFilter: ['style']
    }
    
    // run
    observer.observe(document.querySelector('#modalWindow'), config);
    observer.observe(document.querySelector('#dropdownMenu'), config);
    Ответ написан
    1 комментарий
  • Горизонтальная прокрутка блоков, какой лучше?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
  • Как правильно вывести результат?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    categories.map
    А из map что то выйдет (вернется) сегодня погулять?
    <main class="content">
      {
        categories.map(category => (
          <div>
            {category.name}
            {entries.map(entry => {
              if (category.id === entry.category_id) {
                return <div>{entry.name}</div>;
              }
            })}
          </div>
        ))
      }
    </main>
    Ответ написан
    Комментировать
  • Какую ошибку допустил в данном случае?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    А где объявление i? Попробуйте так:
    for (let i = 0, len = match.length; i < len; i += 4) {
      parts.push(match.substring(i, i + 4));
    }

    Очень интересная конструкция addEventListener.oninput = function(). Попробуйте так:
    inputus[i].addEventListener('input', () => {
      this.value = cc_format(this.value);
    });

    UPD: не ожидал обнаружить this, соответственно использовал стрелочную функцию по дефолту (а у нее нет собственного this). Вариант с this:
    for (let i = 0; i < inputus.length; i++) {
      inputus[i].addEventListener('input', function() {
      this.value = cc_format(this.value);
    });
    Ответ написан
    4 комментария
  • Как добавить график на страницу Razor?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Если не сложно, добавьте пример самого графика. Как добавить туда значения - я как-нибудь доковыляю сам.

    Пример из библиотеки Plotly.Blazor https://github.com/LayTec-AG/Plotly.Blazor#usage
    Ответ написан
    Комментировать
  • Чем заменить require чтобы оно работало в браузере?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Если под "браузером" понимается html страница, то вместо require - подключите библиотеки в html, например:
    <script src="https://cdnjs.cloudflare.com/ajax/libs/axios/1.6.0/axios.min.js" integrity="sha512-WrdC3CE9vf1nBf58JHepuWT4x24uTacky9fuzw2g/3L9JkihgwZ6Cfv+JGTtNyosOhEmttMtEZ6H3qJWfI7gIQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/cheerio/0.22.0/index.js" integrity="sha512-+obmGUxyA+OfXW4RU7Ez2JBbCFy+dmZatW/Z5u/PDZlY+SKzAMSHzpNfTDohw7RFfW+zmLrI9h19XiODWZRO5A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    
    <script>
    const parse = async () => {
        const getHTML = async (url) => {
            const { data } = await axios.get(url);
            return cheerio.load(data);
        };
    
        const $ = await getHTML("https://rozetka.com.ua/search/?text=%D0%B7%D0%B0%D1%80%D1%8F%D0%B4%D0%BD%D0%B0+%D1%81%D1%82%D0%B0%D0%BD%D1%86%D1%96%D1%8F&section_id=4674585");
        const pageNumber = parseInt($('a.pagination__link').eq(-1).text());
    
        for (let i = 1; i <= pageNumber; i++) { // Виправлено умову циклу
            const selector = await getHTML(
                `https://rozetka.com.ua/search/?text=%D0%B7%D0%B0%D1%80%D1%8F%D0%B4%D0%BD%D0%B0+%D1%81%D1%82%D0%B0%D0%BD%D1%86%D1%96%D1%8F&section_id=4674585&page=${i}` // Виправлено номер сторінки
            );
            selector('.catalog-grid__cell').each((index, element) => { // Виправлено параметри функції each
                const title = selector(element).find('.goods-tile__title').text();
                console.log(title, link); // Додано вивід посилання
            });
        }
    };
    
    parse();
    </script>

    Библиотеки должны быть загружены раньше Вашего скрипта.
    Ответ написан