У меня был следующий код:
var progressbar = document.createElement('div');
//...
xhr.onload = function() {
if (this.status == 200) {
var resp = JSON.parse(this.response);
if (resp.ok) {
var image = document.createElement('img');
image.src = resp.dataUrl;
image.onload = () => {
progressbar.remove();
};
formularz.appendChild(image);
//...
Не сработало. Я проверил, был ли недоступен индикатор выполнения:
//...
var image = document.createElement('img');
image.src = resp.dataUrl;
image.onload = () => {
alert(progressbar.innerHTML);
progressbar.remove();
};
//...
Но, что удивительно, я получил предупреждение с содержимым узла индикатора выполнения ...
Затем я изменил мой код:
//...
var image = document.createElement('img');
image.src = resp.dataUrl;
function r(progressbar) {
progressbar.remove();
};
image.onload = r(progressbar);
//...
И это сработало.
Это ошибка или функция? Если это функция, почему я смог прочитать содержимое элемента в предупреждении (вторая версия кода)? Я использую webkit, если это имеет значение.