• Можно ли настроить отдельный скрипт исключительно под safari браузер?

    Zoominger
    @Zoominger
    System Integrator
    Да. Смотрите User-Agent пользователя, если там Safari, то делаете альтернативный стиль.
    Ответ написан
    6 комментариев
  • Как сохранить изображение, обработанное фильтрами CSS, с помощью JS?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Фильтры CSS применяются только для показа фильтрованной картинки на экране. Они не позволяют ничего сохранить, зато (и в том числе по этому) умеют работать даже с картинками из другого ориджина.
    Для сохранения придется и вправду кинуть картинку на канву, потом сделать фильтры самостоятельно. Обычно бывает так:
    ctx.drawImage(img, ...); // рисование картинки на канве
    const data = ctx.getImageData(0, 0, canvas.width, canvas.height); // пиксели картинки


    после чего делаются преобразования цветов пикселей (это самое простое), либо "сверточные фильтры", когда цвет пикселя определяется в том числе и по соседним пикселям (например, для блюра).
    После ctx.putImageData(data) можно сохранить canvas.toBlob
    Ответ написан
    Комментировать
  • Почему скрипт, который должен менять значение фильтра полоской input не работает?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Одиночные кавычки лишние в функции value.
    Ответ написан
    1 комментарий
  • Как пушить данные в Local Storage?

    @YahorDanchanka
    Frontend developer
    Вам нужно брать массив из localStorage и если его нет, присвоить переменной пустой массив.
    И помните, что localstorage может хранить только строки. Вам нужно массив преобразовать в JSON формат.
    let arr = JSON.parse(localStorage.getItem('result')) || [];
    ...
    localStorage.setItem('result', JSON.stringify(arr));
    Ответ написан
    1 комментарий
  • Можно ли на JS автоматически воспроизвести аудио-файл при загрузке страницы?

    delphinpro
    @delphinpro
    frontend developer
    В настоящее время нельзя. О чём, собственно, вам и сообщается.
    Воспроизведение должно быть обязательно инициировано пользователем. Как правило это клик мышкой.
    Ранее работали грязные методы, как реакция на событие mousemove или onscroll. Однако на текущий момент во всех браузерах эту лавочку, слава богу, прикрыли.
    Остался единственный вариант заставить пользователя послушать вашу музыку, хоть это и не авто воспроизведение в прямом смысле: прозрачный див поверх всего сайта, по клику на который, он удаляется и запускается воспроизведение. Метод тоже грязный, юзерам может не понравится и они тупо уйдут от вас. Особенно, если не будет возможности остановить музыку.
    Также, если воспроизведение уже было запущено пользователем, то при переходе между страницами вашего сайта, автоплей уже будет работать в пределах текущей сессии (до ухода с сайта).
    Ответ написан
    Комментировать
  • Как в 1 файл php из js передать несколько массивов с помощью AJAX?

    @zkrvndm
    Боты, парсеры, расширения
    Это все делается достаточно просто. Ниже пример отправки данных при помощи jQuery.ajax()
    async function sendInfo() {
    
    	let arr1 = [1, 2, 3, 4, 5];
    	let arr2 = ['a', 'b', 'c', 'd', 'e'];
    
    	var response = await $.ajax({
    		url: 'test.php',
    		method: 'POST',
    		cache: false,
    		data: {
    			'arr1': arr1,
    			'arr2': arr2
    		}
    	});
    
    	console.log('Данные успешно отправлены, ответ сервера: ' + response);
    	
    	return response;
    
    }

    Просто вызовите функцию sendInfo() и увидите результат запроса в консоли.

    Должен предупредить, что для работы функции jQuery.ajax() у вас обязательно должна быть подключена библиотека jQuery, для этого добавьте перед закрывающим тегом </head> на своем сайте следующий скрипт:
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>


    P. S. На стороне PHP скрипта вам надо смотреть переменные $_POST['arr1'] и $_POST['arr2'] - именно там будут лежать отправленные вами данные.
    Ответ написан
    Комментировать
  • Как получить значения всех инпутов сразу по дата атрибуту в js?

    @tantumus21
    radios = document.getElementsByClassName('radio3')
    
    for(let i=0; i< radios.length; i++) {
      if(radios[i].getAttribute('data-checked') === 'checked') {
        console.log(radios[i].value)
      }
    }
    Ответ написан
    Комментировать