Загрузка файла на сервер

429
24 ноября 2016, 10:28

Использую такой код для загрузки изображений на сервер:

<input id="avatar" type="file">
<div onClick="run_image()">Загрузить аватар</div>
function run_image() {
        var file = document.querySelector("#avatar").files[0];
        var formData = new FormData();
        formData.append("file", file);

        var XHR = "onload" in new XMLHttpRequest() ? XMLHttpRequest : XDomainRequest;
        var xhr = new XHR();
        xhr.open('POST', 'pages/edit/avatar.php', true);
        xhr.onreadystatechange = function() {
            if (xhr.readyState !== 4) {
                return;
            }
            if (xhr.status === 200) {
                document.getElementById('window_data').innerHTML = xhr.responseText;
                alert(xhr.responseText);
            }
        };
        xhr.send(formData);
    }

В файле avatar.php содержится js код меняющий стили некоторых елементов, который не срабатывает, как делать что бы срабатывал js код?

Answer 1

Проблема в том, что присвоение HTML не выполняет блоки. Самый просто вариант - отвечать JS кодом без тегов и тому подобного, и выполнять код через eval().

Еще как вариант - использовать jQuery, или же написать тоже самое что делает он вручную. jQuery фактически выполняет всё теги сам, если они есть, при вызове element.html().

Более подробно здесь ( на Англ. языке ): http://stackoverflow.com/questions/1197575/can-scripts-be-inserted-with-innerhtml

Так же уже готовый ответ как выполнять script теги: http://stackoverflow.com/questions/2592092/executing-script-elements-inserted-with-innerhtml

READ ALSO
Как разбить дату 20.11.2016 по 20.01.2017?

Как разбить дату 20.11.2016 по 20.01.2017?

Нужно что бы эти даты разбились на составляющие то есть если 2011

381
wordpress ajax отображение content

wordpress ajax отображение content

Задача: есть блок с картинками, которые являются изображениями разных постов WPБлок the content(); скрыт в CSS

421
Не рендерится google maps

Не рендерится google maps

Почему иногда карта не рендерится, а просто серого цветаЧаще всего случается когда сначала открываешь карту toggleRestsMap = false, потом показать...

363