var start_date = new Date().getTime() + 11000;
setInterval(function() {
var current_date = new Date().getTime();
if (start_date > current_date) {
var left_date = start_date - current_date;
var hours = Math.floor(left_date / 3600000);
var minutes = Math.floor((left_date % 3600000) / 60000);
var seconds = Math.floor((left_date % 60000) / 1000);
var left_time = '';
if (hours) {
left_time += hours + ' ч. ';
}
if (minutes) {
left_time += minutes + ' м. ';
}
if (String(seconds).length === 2) {
left_time += seconds + ' с.';
} else {
left_time += '0' + seconds + ' с.';
}
document.querySelector('body').innerHTML = 'Осталось времени ' + left_time;
}
else {
var elapsed_date = current_date - start_date;
var hours = Math.floor(elapsed_date / 3600000);
var minutes = Math.floor((elapsed_date % 3600000) / 60000);
var seconds = Math.floor((elapsed_date % 60000) / 1000);
var elapsed_time = '';
if (hours) {
elapsed_time += hours + ' ч. ';
}
if (minutes) {
elapsed_time += minutes + ' м. ';
}
if (String(seconds).length === 2) {
elapsed_time += seconds + ' с.';
} else {
elapsed_time += '0' + seconds + ' с.';
}
document.querySelector('body').innerHTML = 'Прошло времени ' + elapsed_time;
}
}, 1000);
async function pasteAudio() {
var blob = await (await fetch('https://ссылка_на_ваш_аудиофайл')).blob();
var dt = new DataTransfer();
dt.items.add(new File([blob], 'audio_name.mp3', {type: 'audio/mpeg'}));
document.getElementById("fileInput").files = dt.files;
document.getElementById("fileInput").dispatchEvent(new Event('change'));
}
pasteAudio();
async function elementUpdate(selector) {
try {
var html = await (await fetch(location.href)).text();
var newdoc = new DOMParser().parseFromString(html, 'text/html');
document.querySelector(selector).outerHTML = newdoc.querySelector(selector).outerHTML;
console.log('Элемент '+selector+' был успешно обновлен');
return true;
} catch(err) {
console.log('При обновлении элемента '+selector+' произошла ошибка:');
console.dir(err);
return false;
}
}
elementUpdate('table#test');
<button onclick="elementUpdate('table#test');">Нажми меня, чтобы обновить таблицу</button>
var objeto = { 'raz' : 'Первое свойство', 'dva' : 'Второе свойство' };
var params = new URLSearchParams();
for (var prop in objeto) {
params.append(prop, objeto[prop]);
}
console.log(params.toString());
// Функция для преобразования объекта
// в строку формата x-www-form-urlencoded:
function httpBuildQuery(object_to_convert) {
var params = new URLSearchParams();
var paramsGenerator = function(parent_key, iterate_object) {
for (var current_key in iterate_object) {
if (typeof iterate_object[current_key] == 'string' || typeof iterate_object[current_key] == 'number') {
if (parent_key.length > 0) {
var property_path = parent_key + '[' + current_key + ']';
} else {
var property_path = current_key;
}
params.append(property_path, iterate_object[current_key]);
} else if (typeof iterate_object[current_key] == 'object') {
if (parent_key.length > 0) {
var property_path = parent_key + '[' + current_key + ']';
} else {
var property_path = current_key;
}
paramsGenerator(property_path, iterate_object[current_key]);
}
}
}
paramsGenerator('', object_to_convert);
return params.toString();
}
// Потестируем работу функции на примере:
var test_object = {
'raz' : 'Первое свойство',
'dva' : 'Второе свойство',
'tri' : {
'test' : 'Тест',
'proverka' : 'Проверка',
'massiv' : [
'aaa',
'bbb',
'ccc',
{
'lalala' : 'lololo',
'tratata' : 'trototo'
},
123,
345,
567
]
}
};
var send_string = httpBuildQuery(test_object);
var response = await (await fetch('https://nadim.work/post_view.php', {
method: 'POST',
headers: {
'Content-Length' : send_string.length,
'Content-Type' : 'application/x-www-form-urlencoded'
},
body: send_string
})).text();
console.log(response);
var span = document.querySelector('span[data-text="true"]');
span.focus();
span.innerHTML = 'Новый текст';
span.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true }));
span.dispatchEvent(new KeyboardEvent('keypress', { bubbles: true }));
span.dispatchEvent(new KeyboardEvent('keyup', { bubbles: true }));
span.dispatchEvent(new Event('input', { bubbles: true }));
span.dispatchEvent(new Event('change', { bubbles: true }));
// Создадим простой текстовый файл:
var data = 'Здесь текст для файла или положите в переменную Blob';
var file = new File([data], 'primer.txt', {type: 'text/plain'});
// Создаем коллекцию файлов:
var dt = new DataTransfer();
dt.items.add(file);
var file_list = dt.files;
console.log('Коллекция файлов создана:');
console.dir(file_list);
// Вставим созданную коллекцию в реальное поле:
document.querySelector('input[type="file"]').files = file_list;
<input type="file">
- что просто архиполезно для браузерных ботов.<script src="https://cdnjs.cloudflare.com/ajax/libs/localforage/1.9.0/localforage.js"></script>
result = await localforage.setItem('key', save_data);
console.log('Данные успешно сохранены:');
console.dir(result);
result = await localforage.getItem('key');
console.log('Данные успешно извлечены:');
console.dir(result);