Сразу скажу за основу брал чужой код. Есть основная страничка страничка. На ней меню, по нажатию на ссылки в котором открываются другие странички.
Так вот по открытию одной из них считываются имена файлов, расположенных на устройстве. Они и считываются.
function GetList(submit) {
var server = "/list?dir=/";
send_request(submit, server);
alert("блаблабла");
alert('2' + submit.value);
}
function send_request(submit,server){
var request = new XMLHttpRequest();
request.open("GET", server, true);
request.send();
save_status(submit,request);
//alert('1' + submit.value);
}
function save_status(submit,request){
var new_submit;
var old_submit = submit.value;
request.onreadystatechange = function() {
if (request.readyState != 4) return;
submit.value = request.responseText;
new_submit = request.responseText;
setTimeout(function(){
submit.value=old_submit;
submit_disabled(false);
}, 1000);
}
submit.value = 'Подождите...';
submit.value = new_submit;
submit_disabled(true);
}
function submit_disabled(request){
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].type === 'submit') {inputs[i].disabled = request;}
}
}
Первая функция отправляет запрос на устройство. Устройство считывает список файлов и возвращает в виде массива типа
[{"type":"dir","name":"first"},{"type":"file","name":"second"}]
Но вот если в первой функции убрать всплывающее окошко по алерту с блаблабла, то alert('2' + submit.value); выдает "2undefined". Можно конечно вместо блаблабла написать вумную фразу, типа "Данные собираются". Но как-то это неправильно. Подскажите, что сделать, чтобы без этого окна применялось значение. Я всю голову сломал. Тут что-то с последовательностью действий. Например вот если я вставлю в какую нибудь функцию send_request тоже какой-нибудь алерт, то алерт из первой функции выскакивает первый! В других языках программирования тот алерт, что в вызываемой йункции первым бы отработал. А тут такая фигня. Не могу понять этого!