функция. ошибка... в чем проблема?
Добрый день!
Перейдем сразу к делу. идет вызов функции (строка 4)
if (/nebo.mobi/.exec(window.location)) {
setInterval(function () {
if (document.getElementById('cbx').checked) {
var html = get_html('http://nebo.mobi/home', "http://nebo.mobi/home");
var src = html.getElementsByClassName('tdn')[0].getElementsByTagName('IMG')[0].getAttribute('src');
console.log(src);
}
}, 2000);
}
сама функция:
function get_html(url, ref_url) {
var html;
GM_xmlhttpRequest({
method: "GET",
url: url,
headers: {
Referrer: "http://nebo.mobi/home"
},
onload: function (response) {
var parser = new DOMParser();
html = parser.parseFromString(response.responseText, "text/html");
/*
var src = html.getElementsByClassName('tdn')[0].getElementsByTagName('IMG')[0].getAttribute('src');
console.log(src);
*/
},
onerror: function (response) {
console.log(response);
}
});
html = 'error';
return html;
}
выдает ошибку: Uncaught TypeError: Cannot read property 'getElementsByClassName' of undefined script.js:102(anonymous function) в чем проблема? если получать атрибут html.getElementsByClassName('tdn')[0].getElementsByTagName('IMG')[0].getAttribute('src') в самой функции - работает все отлично, вне функции не хочет. подскажите, в чем загвоздка? |
ufo,
код первый строка 4 для получения html необходимо время - понятно? |
Если честно, то нет :cray:
Объясните пожалуйста :help: |
ufo,
запрос на сервер -- нужно время чтоб пришёл ответ с сервера -- а ваш код не ждёт исполняется сразу -- а onload ждёт ответ и только тогда исполняется |
дык как так то?
я же вызываю функцию. return после onload по идее функция должна выполнится и возвращать ... почему это не так происходит? и как можно решить проблему? |
ufo,
решение использовать функцию в onload -- то есть обрабатывать ответ когда он приходит Цитата:
|
спасибо за советы)))
впихнул туда synchronous: true, и опять ничего. но возник вопрос, для чего нужен onerror: и как он работает? |
ufo,
Цитата:
Прочти учебник на этом сайте, там всё объясняется. |
а ошибка какого рода?
|
| Часовой пояс GMT +3, время: 12:00. |