document.querySelector('div[contenteditable="true"]').addEventListener('input', function() {
if (this.innerHTML != this.innerText) {
this.innerHTML = this.innerText;
var range = document.createRange();
range.selectNodeContents(this);
range.collapse(false);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
}
});
var deferreds = []; // Массив для записи Deferred
// Перебором отправляем формы, создаем Deferred
// и добавляем их все в массив который создали выше:
$('form').each(function(num, form) {
deferreds.push($.Deferred(function(deferred) {
$.ajax({
'type': 'POST',
'url': form.action,
'data': $(form).serialize(),
'success': function(data) {
deferred.resolve(data);
},
'error': function(xhr, status) {
deferred.resolve(status);
}
});
}));
});
// По завершению всех Deferred из массива
// выполняем указанную функцию, в нашем случае
// тупо выводим в консоли все полученные ответы:
$.when.apply($, deferreds).done(function() {
console.log('Формы успешно отправлены, массив результатов ниже:');
console.dir(arguments);
});
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('div#block');
// Запуск асинхронного кода:
(async function() {
// Бесконечный цикл:
while (true) {
await elementUpdate('div#block'); // Обновляем блок
// Выжидаем 1000 миллисекунд, а потом код внутри while выполняется вновь:
await new Promise(function(success) { setTimeout(success, 1000); });
}
})();
<script id="iframe_loader">
window.addEventListener('load', function() {
document.querySelector('#iframe_loader').outerHTML = '<iframe src="https://81adcaf58307d2589d4c66bdc2d7e3e8.customizer.amigo.ru" id="calcAmigo" height="640px" width="100%"></iframe>';
});
</script>
// Создаем коллекцию:
var dt = new DataTransfer();
dt.items.add(new File([blob], 'FileName.wav', {type: blob.type}));
var file_list = dt.files;
console.log('Коллекция файлов создана:');
console.dir(file_list);
// Вставим созданную коллекцию в реальное поле:
document.querySelector('input[type="file"]').files = file_list;