<script>alert("Hello QnA.Habr!");</script>
Это можно сделать встроенной функцией btoa()
, но она не умеет Unicode: только ASCIIdata:text/html;base64,и_тут_ваш_код_в_base64
data:text/html;base64,CjxzY3JpcHQ+YWxlcnQoIkhlbGxvIFFuQS5IYWJyISIpOzwvc2NyaXB0Pgo=
Если эту волшебную строку вставить в адресную строку браузера, выведется alert.приходит фотография от пользователя и скрипт её обрабатывает, есть 2 функции для обработки, и мне надо сделать так, чтобы пользователю отправлялся результат той функции, которая выполнится быстрее, поскольку в некоторых случаях быстрее выполняется 1 функция, а в некоторых вторая
почему первый код не работает как и второй
id1.onclick = function() { Place('Вода'); };
Тогда эта присвоенная функция выполнится при клике.как правильно реализуется такая простая задумка
const objects = ["вода", "вода", "суша", "берег"];
function commonClickHandler(title, id) {
console.log('Кликнули объект «%s» с id=%s', title, id);
}
objects.forEach((title, i) => {
const div = document.createElement('div');
const id = `id${i}`;
div.id = id;
div.addEventListener('click', () => commonClickHandler(title, id));
document.body.appendChild(div);
});
function ask(question, ...handlers) {}
ask("Как жизнь?", function(){}, 1, 22, "zzz");
// в функцию ask попадёт:
// question = "Как жизнь?";
// handlers = [
// function(){},
// 1,
// 22,
// "zzz"
// ];
Аргументы после первого все попадают в массив handlers. $.get( "file.txt", function( data ) {
window.fileTxtContent = data;
});
и теперь уже станет «можно» и глобально с ним работать. Но на этот момент весь «обычный» код уже давно отработал.function workWithFileTxt(content) {
console.log("Я свободен от jQuery! А вот текст из файла: ", content);
}
$.get( "file.txt", workWithFileTxt);
getElementsByClassName()
, ..byName()
, ..byTagName()
— возвращают «живую» коллекцию. Когда удаляете 0-й элемент, остальные тут же сдвигаются и бывший 1-м, становится 0-м, но его цикл уже не будет удалять. Теперь к удалению 1-й (бывший 2-й) — поэтому удаляются через один. for (let i = li.length - 1; i >= 0; i--) {
[...menu[1].getElementsByClassName("main-menu__item")]
document.querySelectorAll('.main-menu')[1].remove()
Так по-прежнему в переменнуюlet randomIndex = Math.floor(Math.random() * alphabet.length);
randomIndex
записывается случайный индекс. Один раз.const getRandomIndex = () => Math.floor(Math.random() * alphabet.length);
А вот функция, которая при каждом вызове getRandomIndex()
будет возвращать новый случайный индекс. sqrt( 0.299*R^2 + 0.587*G^2 + 0.114*B^2 )
Это никогда не будет точным значением, но для задачи подойдёт.for (let i = 0; ...
перебирает, условно, горизонтали (строки).for (let k = 0; ...
составляет очередную строку из клеточек, перебирает 8 клеток.s
, которая бывает или 1 или 0, означает цвет очередной клетки, и на каждой клетке меняет своё значение.0 1 0
1 0 1
0 1 0
размотать:
0 1 0 1 0 1 0 1 0
Как видно, клетки меняют свой цвет всегда, в том числе при переходе к следующей строке.