Strict Standards: Resource ID#34 used as offset, casting to integer (34) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Подписи к фото в новом окне
ТвойWeb » WebMaster класс » JavaScript » Подписи к фото в новом окне

Страниц (1): [1]
 

1. Гостья - 08 Мая, 2006 - 15:08:30 - перейти к сообщению
Как я должна изменить эту строку, чтобы к каждому фото в новом окне добавлялась подпись?
newwindow.document.write('<img src=big/'+n+'.jpg onClick="parent.close()" >');
2. TvoyWeb - 08 Мая, 2006 - 15:20:01 - перейти к сообщению
CODE:
newwindow.document.write('Подпись к вашему окну');
3. Гостья - 08 Мая, 2006 - 15:30:52 - перейти к сообщению
TvoyWeb пишет:
CODE:
newwindow.document.write('Подпись к вашему окну');


Пробовала. Под каждым фото - одна и та же подпись, вернее, сразу все, через запятую.
Подскажите, чего не хватает.
4. TvoyWeb - 08 Мая, 2006 - 16:14:26 - перейти к сообщению
Гостья
Вопрос был как вывести текст. Телепатов нет на форуме, кто знает что за скрипт вы используете.
5. Гостья - 09 Мая, 2006 - 03:24:21 - перейти к сообщению
Я нашла этот код на одном из форумов, сейчас он закрыт на модернизацию, поэтому я не могу связаться с автором кода. Прошу помощи здесь. Мне хотелось бы, чтобы к каждой большой фотографии в новом окне выводилась подпись. Не могу понять, где я должна хранить подписи к фото и как их выбирать. Спасибо.

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>");
6. Дмитрий Б. - 09 Мая, 2006 - 05:36:52 - перейти к сообщению
Гостья
Хотел поворчать насчёт качества кода, ну уж ладно - время нынче бурное... Итак:
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 пишет:
Телепатов нет на форуме

Ой ли?
7. Гостья - 09 Мая, 2006 - 06:12:52 - перейти к сообщению
Дмитрий Б. пишет:
Гостья
Хотел поворчать насчёт качества кода, ну уж ладно - время нынче бурное... Итак:


Спасибо! Вы упорядочили мои догадки, бегу проверять!

Поворчите, пожалуйста. Код создан не мной, возможно, Ваше мнение поможет мне лучше понять, как это работает. Я знаю только html.


Проверила. Но, видимо, есть какие-то неточности (я поправила myComments), потому что вместо подписи к фото я вижу undefined.
Помогите, пожалуйста.
8. Дмитрий Б. - 09 Мая, 2006 - 08:23:34 - перейти к сообщению
Пардон, очепятался.

Какие претензии к скрипту?
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('&nbsp;');
document.write('</td>');
}
document.write('</tr>');
}
document.write("</table>");
}


CODE:
writeSlides();

Первый код было бы неплохо вынести в отдельный файл...
9. Гостья - 09 Мая, 2006 - 12:42:13 - перейти к сообщению
Дмитрий Б.
Цитата:
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::
Спасибо.
10. Гостья - 09 Мая, 2006 - 12:50:23 - перейти к сообщению
Дмитрий,
получилось! Посмотрела Ваш последний код, сравнила кавычки-запятые, поставила в свой код по образцу - РАБОТАЕТ!
Огромное спасибо! Вы меня спасли.

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0401]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33