Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.03.2010, 02:20
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

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){}
Ответить с цитированием
  #2 (permalink)  
Старый 30.03.2010, 02:52
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

а пробрасывать(throw) исключение кто будет?
Ответить с цитированием
  #3 (permalink)  
Старый 30.03.2010, 04:22
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

а 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 совпадающего с названием тэга
Ответить с цитированием
  #4 (permalink)  
Старый 30.03.2010, 12:07
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

нужен трай, потому что там ответ иногда пустой, и выдает ошибки...там цикл запросов XHR
Ответить с цитированием
  #5 (permalink)  
Старый 30.03.2010, 12:08
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

Gvozd,
как его херячить?
Ответить с цитированием
  #6 (permalink)  
Старый 30.03.2010, 12:09
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

м.б. просто надо написать в первом случае }catch(e){ а не }catch{
Ответить с цитированием
  #7 (permalink)  
Старый 30.03.2010, 12:19
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

пробывал, все делается как в catch всегда...тоесть всегда document.getElementById('x'+x+'y'+y).style.backgro undImage = "url(img/no.gif")"; хотя try должен работать
Ответить с цитированием
  #8 (permalink)  
Старый 30.03.2010, 12:38
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

и это не работает(

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")";
}
}
Ответить с цитированием
  #9 (permalink)  
Старый 30.03.2010, 16:46
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Попробуйте так:
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)";
}
Ответить с цитированием
  #10 (permalink)  
Старый 31.03.2010, 10:33
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Jekel
нужен трай, потому что там ответ иногда пустой, и выдает ошибки...там цикл запросов XHR
ну вот тебе код. Научи меня вызывать исключения
<!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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите пожалуйста, как сделать? BMWSauber Элементы интерфейса 2 27.01.2010 15:50
Подскажите как это сделать oxotnik Общие вопросы Javascript 11 19.01.2010 09:57
Ajax и три <form> не работает. Как правильно сделать листание записей из базы данных? vlad275 AJAX и COMET 2 14.12.2009 14:04
Подскажите как сделать меню на CSS если: greatilya (X)HTML/CSS 10 18.10.2009 20:26
Подскажите как сделать (события onmouseover и onclick) House M.D. Я не знаю javascript 2 04.06.2009 09:50