실행하려면 : "SRC는 정의의 읽을 수 없습니다" 는이 코드가
<script type="text/javascript">
var url = "http://www.xxxxx.xxx/xxxxxxxxx";
var txt;
var id1;
var id2;
var imgarres = [];
var imgarr = [];
var imgels = [];
function getdata() {
if (id1){clearTimeout(id1);}
if (id2){clearTimeout(id2);}
var xhr = new XMLHttpRequest();
xhr.open('GET',url, true);
xhr.setRequestHeader('Cache-Control', 'no-cache');
xhr.setRequestHeader('Pragma', 'no-cache');
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
txt = xhr.responseText;
var r = txt.indexOf('<b class="fl_r">Online</b>');
var el = document.createElement("div");
el.innerHTML = txt;
var n = imgprocess(el);
var nam = el.getElementsByTagName("title")[0].innerHTML;
if (r != -1) {
var notification = webkitNotifications.createNotification('plus.gif', nam, 'online!!');
notification.show();
var id1 = setTimeout(getdata, 60000);
} else {
var notification = webkitNotifications.createNotification(n, nam, 'offline!!');
notification.show();
var id2 = setTimeout(getdata, 600000);
}
}
}
xhr.send();
}
function imgprocess(text) {
imgels = text.getElementsByTagName("IMG");
for (var i=0;i< imgels.length;i++) {
if (imgels[i].src.indexOf(parse(url)) != -1) {
imgarr = imgels[i];
}
}
for (var p=0; p< imgarr.length; p++) {
if (imgarr[p].parentNode.nodeName=="A") {
imgarres = imgarr[p];
}
}
var z = imgarres[0].src;
return z;
}
function init() {
getdata();
}
</script>
</head>
<body onload="init();">
이 코드를 실행
이 오류는 말한다 약var z = imgarres[0].src;
그 라인 확장 작품에서
src
를 제거하면 오류없이 실행하지만
imgprocess
루틴이 예상 값을 반환하지 않습니다! 예상 값은 imgurl이며 src에서 제거한 값입니다. 두 번째 for 루프 (
for (var p=0; p< imgarr.length; p++){
)는 전혀 실행되지 않지만 첫 번째 루프는 정상입니다. 이 문제를 어떻게 해결할 수 있습니까?
피씨 : 다음과 같이 콜백을 시도해 보았습니다. xhr.onreadystatechange = function(imgprocess) {
하지만 작동하지 않습니다. 그것은 "잡히지 않은 typeerror"객체가 함수가 아니라고 말합니다.
무엇을 의미합니까 ?? 먼저 console.log (imgarr) 루프를 확인했습니다. 첫 번째 for 루프는 괜찮 았습니다. – DrStrangeLove
몇 가지 설명을 추가하고 두 번째 루프가 잘못된 이유를 설명했습니다. – lmz
그러면 console.log (imgarr)가 img 요소를 출력하는 이유는 무엇입니까 ?? – DrStrangeLove