| 
 
 
				
					| Страниц (1): [1] |   |  
 
				
					|  Без описания |  
  					| Поиск в теме | Версия для печати |  
					| 
				
					| Гостья | Отправлено: 09 Мая, 2006 - 03:24:21   |  
					| 
 Newbie
 
  
 Покинул форум
 Сообщений всего: 6
 Дата рег-ции: Май 2006
 
 Карма 0
 
 
 
 
  
 | Я нашла этот код на одном из форумов, сейчас он закрыт на модернизацию, поэтому я не могу связаться с автором кода. Прошу помощи здесь. Мне хотелось бы, чтобы к каждой большой фотографии в новом окне выводилась подпись. Не могу понять, где я должна хранить подписи к фото и как их выбирать. Спасибо. 
 
 CODE:function big(n,t){
 newwindow=window.open("","bigWin","toolbars=0");
 newwindow.document.open("text/html");
 newwindow.document.writeln("<html><head>");
 newwindow.document.writeln("<title>"+t+"</title>");
 newwindow.document.writeln("</head>");
 newwindow.document.writeln("<body style='margin:0'>");
 newwindow.document.writeln('<img src=big/'+n+'.jpg onClick="parent.close()" >');
 newwindow.document.writeln("</body></html>");
 newwindow.document.close();
 newwindow.focus();
 }
 
 
 CODE:var myArr=new Array("title1","title2","title3","title4", "title5","title6","title7","title8","title9","title10","title11","title12","title13");
 document.write("<table border=0 align=center><tr>");
 for(j=1;j<=13;j++){
 document.write("<td style='padding:6px'><img src=small/"+j+".jpg onClick='big("+j+",\""+myArr[j-1]+"\");' style='cursor:hand;'>");
 if (j%4 == 0) {
 document.writeln("<tr>");
 }
 }
 document.write("</table>");
 
 |  
					|  |   |  
				
					| Дмитрий Б. | Отправлено: 09 Мая, 2006 - 05:36:52   |  
					| 
  
 Super Member
 
  
 Покинул форум
 Сообщений всего: 800
 Дата рег-ции: Март 2005
 Откуда: Иркутск
 
 Карма 0
 
 
 
 
  
 | Гостья Хотел поворчать насчёт качества кода, ну уж ладно - время нынче бурное... Итак:
 
 CODE:function big(n,t,s){  newwindow=window.open("","bigWin","toolbars=0");
 newwindow.document.open("text/html");
 newwindow.document.writeln("<html><head>");
 newwindow.document.writeln("<title>"+t+"</title>");
 newwindow.document.writeln("</head>");
 newwindow.document.writeln("<body style='margin:0'>");
 newwindow.document.writeln('<img src=big/'+n+'.jpg onClick="parent.close()" >');
 newwindow.document.writeln('<BR>'+s);
 newwindow.document.writeln("</body></html>");
 newwindow.document.close();
 newwindow.focus();
 }
 
 CODE:var myArr=new Array("title1","title2","title3","title4","title5", "title6","title7","title8","title9","title10","title11","title12","title13");var myComments=new Array("comment1", "comment2", "comment3", "comment4", "comment5", "comment6", "comment7", "comment8", "comment9", "comment10", "comment11", "comment12", "comment13");
 document.write("<table border=0 align=center><tr>");
 for(j=1;j<=13;j++){
 document.write("<td style='padding:6px'><img src=small/"+j+".jpg onClick='big("+j+",\""+myArr[j-1]+"\",myComment[j-1]);' style='cursor:hand;'>");
 if (j%4 == 0) {
 document.writeln("<tr>");
 }
 }
 document.write("</table>");
 
 
 TvoyWeb пишет:Телепатов нет на форуме Ой ли?
 |  
					|  |   |  
				
					| Гостья | Отправлено: 09 Мая, 2006 - 06:12:52   |  
					| 
 Newbie
 
  
 Покинул форум
 Сообщений всего: 6
 Дата рег-ции: Май 2006
 
 Карма 0
 
 
 
 
  
 | Дмитрий Б. пишет:ГостьяХотел поворчать насчёт качества кода, ну уж ладно - время нынче бурное... Итак:
 
 
 Спасибо! Вы упорядочили мои догадки, бегу проверять!
 
 Поворчите, пожалуйста. Код создан не мной, возможно, Ваше мнение поможет мне лучше понять, как это работает. Я знаю только html.
 
 
 Проверила. Но, видимо, есть какие-то неточности (я поправила myComments), потому что вместо подписи к фото я вижу undefined.
 Помогите, пожалуйста.
 
 |  
					|  |   |  
				
					| Дмитрий Б. | Отправлено: 09 Мая, 2006 - 08:23:34   |  
					| 
  
 Super Member
 
  
 Покинул форум
 Сообщений всего: 800
 Дата рег-ции: Март 2005
 Откуда: Иркутск
 
 Карма 0
 
 
 
 
  
 | Пардон, очепятался. 
 Какие претензии к скрипту?
 1. При редактировании списка фоток надо также править их количество.
 2. HTML-код, порождаемый скриптом, не соответствует спецификации.
 3. Небрежная, на мой взгляд, разметка.
 4. Смешение методов document.write() и document.writeln() может сбить с толку неопытного пользователя.
 5. Все фотки открываются в одном окне - нельзя лицезреть сразу две.
 6. При открытии нового окна браузер в принципе может предпринять попытку загрузить в него страницу по умолчанию для текущей директории.
 7. Число маленьких фотографий в строке фиксировано.
 
 Я бы переписал этот код так (разумеется мой код не претендует на звание идеального):
 
 
 CODE:function openBigFoto(number, title, comment){
 var newwindow=window.open("about:blank", "bigWin"+number, "toolbars=0");
 var x='<html><head><title>'+title+'</title></head><body style="margin: 0;"><a href="javascript:parent.close();">';
 x+='<img src="big/'+(number+1)+'.jpg" title="'+title'"><BR><p>'+comment+'</p></body></html>';
 newwindow.document.open("text/html");
 newwindow.document.write(x);
 newwindow.document.close();
 newwindow.focus();
 }
 
 function writeSlides()
 {
 var titles=
 [
 "title1",
 "title2",
 "title3",
 "title4",
 "title5",
 "title6",
 "title7",
 "title8",
 "title9",
 "title10",
 "title11",
 "title12",
 "title13"
 ];
 
 var comments=
 [
 "comment1",
 "comment2",
 "comment3",
 "comment4",
 "comment5",
 "comment6",
 "comment7",
 "comment8",
 "comment9",
 "comment10",
 "comment11",
 "comment12",
 "comment13"
 ];
 
 document.write('<table border="0" align="center">');
 
 var imagesPerString=4;
 var i, j, k, rows=Math.ceil(document.titles.length/imagesPerString);
 for(i=0; i<rows; i++)
 {
 document.write('<tr>');
 for (j=0; j<imagesPerString; j++)
 {
 k=i*imagesPerString+j;
 document.write('<td style="padding:6px">');
 if (titles[k])
 document.write('<a href="javascript:openBigFoto('+k+', \''+titles[k]+'\', \''+comments[k]+'\');"><img src="small/'+
 (k+1)+'.jpg"></a>');
 else
 document.write(' ');
 document.write('</td>');
 }
 document.write('</tr>');
 }
 document.write("</table>");
 }
 
 
 Первый код было бы неплохо вынести в отдельный файл...
 |  
					|  |   |  
				
					| Гостья | Отправлено: 09 Мая, 2006 - 12:42:13   |  
					| 
 Newbie
 
  
 Покинул форум
 Сообщений всего: 6
 Дата рег-ции: Май 2006
 
 Карма 0
 
 
 
 
  
 | Дмитрий Б. 
 Цитата:7. Число маленьких фотографий в строке фиксировано. Единственное, с чем я смогла справиться в первоначальном коде - это менять по своему желанию количество маленьких фото в строке.  ::smile24.gif::
 
 Попробую и этот код, спасибо. Но с Вашим предыдущим кодом проблема всё же осталась: даже после того как поправила опечатку, вместо подписей вижу undefined. Могут быть проблемы с запятыми-кавычками в этой строке?
 
 
 CODE:document.write("<td style='padding:6px'><img src=small/"+j+".jpg onClick='big("+j+",\""+myArr[j-1]+"\",myComments[j-1]);' style='cursor:hand;'>");
 
 
 Пожалуйста, посмотрите ещё раз. Кавычки-запятые-слэши меня приводят в замешательство. ::sad24.gif::
 Спасибо.
 |  
					|  |   |  |  
					| Поиск в теме | Версия для печати |  
  					| Страниц (1): [1] |  
  					| Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0) |  
  					| « JavaScript » |  
 
 
				
					| Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе.
 Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 
 |   |  
 
 
 |