Страниц (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 » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
|
|
|