try и catch подскажите как правильно сделать
нужно сделать так, чтобы если map = error ну либо оно ничему не равно тоесть на него нету ответа от xmlResp, то выполнялся код который в первом листинге в catch.
так не работает(
try{
map = xmlResp.getElementsByTagName('x'+x+'y'+y).item(0).firstChild.data;
document.getElementById('x'+x+'y'+y).style.backgroundImage = "url(img/" + map + ")";
}catch{
document.getElementById('x'+x+'y'+y).style.backgroundImage = "url(img/no.gif)";
}
и так пробывал:
try{
map = xmlResp.getElementsByTagName('x'+x+'y'+y).item(0).firstChild.data;
if(!map){document.getElementById('x'+x+'y'+y).style.backgroundImage = "url(img/" + map + ")";
}else{
document.getElementById('x'+x+'y'+y).style.backgroundImage = "url(img/no.gif)";
}
}catch(e){}
|
а пробрасывать(throw) исключение кто будет?
|
а try/catch зачем?
var tagNameId = 'x'+x+'y'+y;
var tags = xmlResp.getElementsByTagName(tagNameId);
var imgName = tags.length ? tags[0].firstChild.data
: 'no.gif';
document.getElementById(tagNameId).style.backgroundImage = "url(img/"+imgName+")";
только непонятно достаточно ли tags.length в качестве условия. И очень настораживает использование id совпадающего с названием тэга |
нужен трай, потому что там ответ иногда пустой, и выдает ошибки...там цикл запросов XHR
|
Gvozd,
как его херячить? |
м.б. просто надо написать в первом случае }catch(e){ а не }catch{
|
пробывал, все делается как в catch всегда...тоесть всегда document.getElementById('x'+x+'y'+y).style.backgro undImage = "url(img/no.gif")"; хотя try должен работать
|
и это не работает(
try{
map = xmlResp.getElementsByTagName('x'+x+'y'+y).item(0).firstChild.data;
if(map){
document.getElementById('x'+x+'y'+y).style.backgroundImage = "url(img/" + map + ")";
throw "E0";
}else{
throw "E1";
}
}catch(e){
if(e == "E1"){
document.getElementById('x'+x+'y'+y).style.backgroundImage = "url(img/no.gif")";
}
}
|
Попробуйте так:
try{
map = xmlResp.getElementsByTagName('x'+x+'y'+y).item(0).firstChild.data;
if(!map){document.getElementById('x'+x+'y'+y).style.backgroundImage = "url(img/" + map + ")";
}else{
document.getElementById('x'+x+'y'+y).style.backgroundImage = "url(img/no.gif)";
}
}catch(e){
document.getElementById('x'+x+'y'+y).style.backgroundImage = "url(img/no.gif)";
}
|
Цитата:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<SCRIPT TYPE="text/javascript">
function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
var xmlhttp = getXmlHttp()
xmlhttp.open('GET', '10.xml', true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
var tags = xmlhttp.responseXML.getElementsByTagName('a');
}
}
};
xmlhttp.send(null);
alert(1);
</SCRIPT>
</body>
</html>
|
| Часовой пояс GMT +3, время: 16:59. |