Ответы пользователя по тегу HTML
  • Как в html5 video - получить скриншот изображения по определенному тайм коду?

    @zkrvndm
    Софт для автоматизации
    Обратите внимание, что превью на прокрутке видно даже тогда, когда само видео ещё не загружано полностью... я думаю вы догадываетесь, что картинки генерируются отнюдь не в браузере?
    Ответ написан
    Комментировать
  • Как сделать input text вида textarea?

    @zkrvndm
    Софт для автоматизации
    Могу предложить грязный хак вашей проблемы. Используйте textarea, но вывод с него перенаправьте в input:
    <textarea oninput = "document.querySelector('input#id').value = this.value;" placeholder="Введите что-нибдуь"></textarea>

    Только замените id на айди целевого поля. Сам целевой input просто скройте, через display: none
    Ответ написан
    2 комментария
  • Как массово делать скриншоты iframe?

    @zkrvndm
    Софт для автоматизации
    Вы можете легко скриншотить содержимое любого html-элемента, используя для этого canvas:
    https://html2canvas.hertzen.com/
    Ответ написан
    2 комментария
  • Как автоматом очистить форматирование при копировании / вставке?

    @zkrvndm Автор вопроса
    Софт для автоматизации
    Нашел решение. Оказывается, существует событие paste, которое происходит, когда мы вставляем что-то в блок. Соответственно, можно повесить обработчик на него, отменить действие по умолчанию, а затем перехваченный текст обработать как душе угодно:
    document.querySelector('div[contenteditable="true"]').addEventListener("paste", function(e) {
            e.preventDefault();
            var text = e.clipboardData.getData("text/plain");
            document.execCommand("insertHTML", false, text);
    });
    Ответ написан
    Комментировать
  • Как передовать свои элементы через iframe или js-скрипты?

    @zkrvndm
    Софт для автоматизации
    В чем собственно проблема? Просто напишите скрипт, который будет по AJAX запрашивать таблицу и выводить ее.
    Ответ написан
  • Как вставить blob в поле выбора файла?

    @zkrvndm Автор вопроса
    Софт для автоматизации
    Я нащупал два решения для этой проблемы.

    Первый способ позволяет вставить произвольный Blob в поле <input type="file"> и для обработчиков на целевом сайте все будет выглядеть, будто в поле реально присутствуют файлы, хотя это конечно будет не так.

    Итак, функция для вставки:
    // Пример функции для вставки Blob в поле input:
    
    function pasteBlobToInput(blob, input) {
    	
    	// Конвертируем Blob в File:
    	var file = new File([blob], blob.name);
    	
    	// Создаем коллекцию файлов для последующий вставки:
    	var file_list = {0: file, length: 1, '__proto__': input['files']['__proto__']};
    	
    	// Сохраняем прототип поля:
    	var proto = input['__proto__'];
    	
    	// Подменяем прототип для разблокировки св-ства files на запись:
    	input['__proto__'] = document.createElement('div')['__proto__'];
    	
    	// Записываем коллекцию файлов:
    	input['files'] = file_list;
    	
    	// Возвращаем прототип на место:
    	input['__proto__'] = proto;
    	
    	// Выводим уведомление:
    	console.log('Коллекция успешно вставлена:');
    	console.dir(file_list);
    	
    	// Заставляем сработать обработчики на поле выбра файлов:
    	input.dispatchEvent(new InputEvent('change', { bubbles: true }));
    	
    }

    Первым параметром функции передаем Blob, а вторым элемент input куда нужно его вставить. Обратите внимание, что Blob должен иметь имя в свойстве name. Если у вас Blob без названия, то добавьте его. К сожалению, коллекция файлов способом выше создается неполноценная, но даже этой неполноценной коллекции достаточно чтобы обмануть обработчики. Я писал это решение для WhatsApp-бота и там у меня реально все работает)

    Второй вариант позволяет получать полноценные коллекции файлов и далее их вставлять и использовать их где угодно. Для начала нам нужно подключить библиотеку localforage:
    <script src="https://cdnjs.cloudflare.com/ajax/libs/localforage/1.9.0/localforage.js"></script>

    Далее, мы можем выбрать файлы для коллекции и сохранить их в памяти браузера:
    var input = document.createElement('input');
    input.setAttribute('type', 'file');
    input.setAttribute('multiple', 'multiple');
    input.addEventListener('change', async function() {
    	var files = await localforage.setItem('files', this.files);
    	console.log('Коллекция файлов успешно сохранена:');
    	console.dir(files);
    });
    input.click();

    Сохраненную коллекцию мы позднее сможем использовать даже после перезагрузки страницы или закрытия / открытия браузера. Для извлечения сохраненной коллекции достаточно выполнить:
    var files = await localforage.getItem('files');
    console.log('Коллекция файлов успешно извлечена:');
    console.dir(files);

    Эта коллекция полноценная и мы легко можем ее прицепить в любое поле:
    var files = await localforage.getItem('files');
    document.querySelector('input[type="file"]').files = files;

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

    @zkrvndm
    Софт для автоматизации
    Вы можете использовать для вывода alertyfy. Пролистайте до Default Notifications и нажмите Run Example несколько раз, для просмотра демо.
    Ответ написан
    1 комментарий
  • Как переходить по ссылке в iFrame?

    @zkrvndm
    Софт для автоматизации
    Используйте JavaScript.
    Ответ написан
  • Как поставить иконку рядом с текстом так чтобы новая строка не заходила под иконку?

    @zkrvndm
    Софт для автоматизации
    Иконку позиционируйте абсолютно относительно строки, самой строке дайте отступ слева равный ширине иконки.
    Ответ написан
  • Почему не срабатывает скрипт?

    @zkrvndm
    Софт для автоматизации
    Если помогло только setTimeout то значит есть вероятность того, что у вас скрипт стартует раньше загрузки страницы. Попробуйте запускать свой код только после полной загрузки сайта:
    window.addEventListener('load', function() {
        // Место под ваш код
    });
    Ответ написан
  • Что не так с document.all?

    @zkrvndm
    Софт для автоматизации
    Не бывает такого свойства, как baclground да и document.all это не элемент, а коллекция элементов, чтобы применить стиль к элементам коллекции нужно эту коллекцию сначала обойти в цикле.
    Ответ написан
    Комментировать
  • Тэг 'P' для СЕО?

    @zkrvndm
    Софт для автоматизации
    Похоже на бабушкины суеверия. Это настолько мелочно и не значительно, что просто не способно оказать хоть какого-то значимого воздействия на позиции, больше похоже на игру в угадайку, чем факт.
    Ответ написан
    Комментировать
  • Яндекс почта, html подпись, редактор режет ссылки?

    @zkrvndm
    Софт для автоматизации
    Очень просто, создайте у себя на сайте php-обработчик которых на входе принимает GET и делает переадресацию по считанному номеру. В письме вместо телефона даете ссылку на обработчик:
    <a href="https://site.ru/handler.php?tel=+79650021212">+79650021212</a>
    Ответ написан
    Комментировать
  • Как вывести из какой формы отправлена заявка?

    @zkrvndm
    Софт для автоматизации
    Повесить обработчики на ваши кнопки, чтобы кроме открытия формы происходило вписывание названия товара в какое-нибудь из полей.
    Ответ написан
    Комментировать
  • Как реализовать автообновление div без перезагрузки страницы?

    @zkrvndm
    Софт для автоматизации
    Аяксом получаешь страницу, парсишь и вставляешь обработанные данные и так по бесконечному циклу.
    Ответ написан
  • Как подключить папку с видео на сайт?

    @zkrvndm
    Софт для автоматизации
    На ваш вопрос "как" простого ответа нет. Для того, чтобы получить возможность выводить видео из папки на сайте надо смастерить php скрипт, который будет парсить содержимое папки и генерировать html-код на его базе и тут как бы на пальцах не объяснить как это сделать - учите php или закажите нужный скрипт платно.
    Ответ написан
    Комментировать
  • Как сделать удобный подбор города в поле формы?

    @zkrvndm
    Софт для автоматизации
    Комментировать
  • Как решить задачку (шахматная доска, ход конем) без использования js?

    @zkrvndm
    Софт для автоматизации
    Для ячеек, что после красного идут можно определить стили через селекторы + / ~
    А вот для ячеек что идут до красного, кажется что никак нельзя стили определить, ведь селекторы соседей работают только вниз. Однако, чисто гипотетически можно наложить поверх доски ещё одну прозрачную дочку повернув на 180 градусов и тогда по идее можно. Только надо изучить как себя тут будет вести свойство pointer-events
    Ответ написан
  • Как выровнять элементы по высоте?

    @zkrvndm
    Софт для автоматизации
    Просто сделайте 8 флексблоков по четыре на строку. Отрегулируйте стили так, чтобы два вертикально стоящих флексблока казались одной единой карточкой.
    Ответ написан
  • Возможно ли передать данные из одного файла в другой файл через JavaScript?

    @zkrvndm
    Софт для автоматизации
    Передать напрямую нельзя, но можно сохранить ее значение где-нибудь, а затем уже в том файле вытащить сохраненное и вставить в нужное вам поле.

    Если обе ваши формы находятся на одном и том же сайте, то для сохранения данных, можно использовать локальное хранилище.

    Пример использования:
    localStorage.setItem("test", "тестовая строка");
    Мы сохранили тестовую строку в локальное хранилище.

    Доступ к сохраненной информации можно будет получить позже по ключу test:
    per = localStorage.getItem("test");
    alert(per);

    Данные в хранилище хранятся условно вечно и не исчезают даже если закрыть сайт. Грубо говоря, можно туда что-нибудь записать, а через год зайти на этот же сайт и считать информацию.

    Подробнее про локальное хранилище и особенности его использования вы можете почитать в сети. Яндекс вам поможет найти мануалы, их полно.
    Ответ написан
    Комментировать