Инструкции цикла не хотят работать.
Здравствуйте, собственно сабж. Использовал циклы для наполнения массива данными, но скрипт отказался работать. Консоль Хрома ругается на переменную i, в цикле while. Говорит - невозможно прочесть свойство неопределенного. Хотя переменную объявил заранее. (считаю что на переменную i, т.к. при изменении её значения в ошибке менялись заключённые в 'кавычках' значения)
Код:
TypeError: Cannot read property '0' of undefined
$(document).ready(function DownloadPageText(){
var url = Array ['index.php?id=15','index.php?id=14','index.php?id=32','index.php?id=16','index.php?id=17','index.php?id=18','index.php?id=19','index.php?id=20'];
var i = 0;
while(i<9){
var request = new XMLHttpRequest();
request.open('GET', url[i]);
request.onreadystatechange = function(){if(request.readyState === 4 && request.status === 200){Text[i] = request.responseText}}
request.send(null);
i++;
};
}
Замечу что Хром не ругается на эту же часть кода, но без $(document).ready() |
alert(typeof url); |
Цитата:
|
да, согласен - бред, видно на автомате написал, привычка с паскаля)
можете тогда подсказать, как нужно доработать код, что бы он правильно записывал в массив Text полученные данные? А то теперь он вместо обращения к адресам из массива url обращается к странице undefined Извиняюсь за глупые вопросы) |
как-то так. только не забывайте, что Text наполнится , когда данные придут.
var Text = [];
$(document).ready(function DownloadPageText () {
var url = ['index.php?id=15','index.php?id=14','index.php?id=32','index.php?id=16','index.php?id=17','index.php?id=18','index.php?id=19','index.php?id=20'];
var i = 0;
while(i < url.length){
var request = new XMLHttpRequest();
request.open('GET', url[i]);
request.onreadystatechange = (function (i) {
return function () {
if(this.readyState === 4 && this.status === 200){
Text[i] = this.responseText;
}
};
})(i);
request.send(null);
i++;
};
}
|
melky,Дзен-трансгуманист
Спасибо за помощь! |
| Часовой пояс GMT +3, время: 14:48. |