Самое понятное видео! Ты перенаправляешь не существующие директории а если директория существует он тоже перенаправит?, просто у меня если директория существует он идёт в эту директорию
Вот это намудрил, так намудрил. Взрыв мозга от переделок и переписывания кода. Согласна с предыдущим комментатором, что легко исключительно для автора.
прикольно как получилось легко и непринужденно зацепить асинхронность) только у меня почему-то выдает сразу три результата вот такой вот код из урока (хотела просто проверить, поэтому вместо действия вывод в консоль): (async function() { await delay(3); console.log('hi'); async function delay(value) { return new Promise((resolve, reject) => { setTimeout(function() { console.log('end of delay'); resolve(); }, value * 1000); }) } })();
Заметил интересную особенность метода sort() . В старых роликах на ютубе и в старом браузере Мозила переменные a и b работают в другом порядке чем в новом Хром и VScode. a и b - поменялись местами и сортировка проходит за большее количество этапов, чем раньше))
Пересмотрел 5 видосов и даже на МДН не объяснили как идет сортировка. Только куча примеров, а то что попарно проверяется несколько циклов, нигде не нашел.
А можно как-то простым способом изменить название файла, но оставить его расширение неизменным? Допустим, картинки могут быть разных форматов: jpg, png, gif и мы заранее не знаем, какое попадётся. Я понимаю, конечно, что можно сначала взять полное имя скачиваемого файла, отделить от него расширение(например, как часть после точки) и уже потом добавить это расширение к новому имени. Но может есть более быстрый способ?)) И второе: если картинка на другом домене находится, то может открыть её сначала в новой вкладке и уже оттуда спокойно скачать?
дело в том, что кроме dom, могут грузится еще всякие асинхронные штуки, например, ajax и DOMContentLoaded не будет панацеей поэтому мне удобнее делать эмпирическую задержку
Курс очень интересный) Столкнулся с одной проблемой. Открываю по клику (со своей локальной странички) ссылку ведущую на поисковик яндекс в новом окне, через юзер - скрипт. В поисковую строку вводится запрос, далее происходит клик по кнопке сабмит и открывается страница с результатами поиска, но в том же окне. Проблема в том, что не получается закрыть это окно посредством window.close(), в консоли браузера такой варнинг - "Сценарии не могут закрывать окна, открытые другими сценариями". Хотя консоль лог выполняется - if ( window.location.pathname.startsWith('/search/') ) { await delay(3); console.log('yandex worked'); window.close(); } Как исправить?
Наверное, единственный логичный вопрос, а на "зачем" подобное нужно, кроме раздражения пользователя? Единственное где подобное встречал, это открытие спама и переход на сторонние ресурсы по таймеру, такие сайты обычно сразу отправляются в бан и из-за подобных "сайтов" приходится использовать блокировщик скриптов NoScript, при загрузке, для экономии нервных клеток.
в нашем случае чтобы автоматизировать рутинные операции: можно проверять наступление события на сайте, скачивать картинки, видео, чтобы смотреть без интернета. Также и просто бывает полезно. К примеру, на code.mu в учебнике верстки есть задачи сверстать целый макет. И они открываются в новом окне (в отдельной вкладке или в текущей). Такое открытие позволяет сделать так, чтобы css стили собственно code.mu не мешали css стилям задачи (то есть у нового окна свои стили и можно в задаче писать любые классы, не боясь, что они криво будут работать)
@@user-zc1cv5ie1t Про code mu не пользовался, подобное решение не видел. А вот что касается "автоматизации на сайте" не проще использовать cron? Касаемо парсинга картинок и видео, мне кажется кликами на js, это извращение, для подобных целей значительно лучше использовать тот же питон, на js это ладно если пару файлов, а если нужно слить пару тысяч файлов, это сидеть не трогая машину, да и большинство браузеров при подобных запросах просто повещаются или пошлют лесом. Хотя сложно спорить, каждый "развлекается" по своему. Благодарю за ответ.
У меня почему-то асинхронная функция не срабатывает... Кто знает в чем причина может быть?) Использовал из тг-канала: const btn = document.querySelector('#btn') (async function() { await delay(3); btn.click(); async function delay(value) { return new Promise((resolve, reject) => { setTimeout(function() { console.log('конец задержки'); resolve(); }, value * 1000); }); } })();
круто! только у меня почему-то не появилась иконка обезьяны и место, где дизаблить скрипт плагин я вызываю из иконки всех плагинов, а вот как у вас выпадающее меню не знаю где искать. Что я могла сделать не так? ФФ раньше не пользовалась, только что скачала
У меня тоже не появилась, в иконке расширений (пазл) рядом с обезьянкой в настройках (шестеренка) отметила галочкой закрепить на панели инструментов, и теперь с обезьянкой)
В данном случае, если в массиве отсутствуют строковые элементы с запятыми, то можно решить это в одну строку, например так: let res = arr.join().split(","); На выходе будем иметь простой одномерный массив со строковыми значениями. Если нужны именно числовые значения, тогда можно немного дополнить строку: let res = arr.join().split(",").map(Number);