Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Java / JavaScript


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Hubbitus
Статус: 10-й класс
Рейтинг: 138
∙ повысить рейтинг >>
Ross
Статус: Практикант
Рейтинг: 130
∙ повысить рейтинг >>
Evgenijm
Статус: 7-й класс
Рейтинг: 116
∙ повысить рейтинг >>

∙ / КОМПЬЮТЕРЫ И ПО / Языки программирования / Java/JavaScript

Выпуск № 636 от 08.07.2009, 15:05
Администратор рассылки: Калашников О.А., Руководитель
В рассылке: подписчиков - 462, экспертов - 97
В номере: вопросов - 1, ответов - 2

Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
оценить выпуск >>

Вопрос № 170132: Проблема в галлерее маленькие картинки не открывают большие, цикл остонавливается на последней. Основной код: <script type="text/javascript"> function winOpen(img) { window.open("home.html#"+img,"main...



Вопрос № 170132:

Проблема в галлерее маленькие картинки не открывают большие, цикл остонавливается на последней.
Основной код:
<script type="text/javascript">
function winOpen(img)
{
window.open("home.html#"+img,"main","width=400,height=400,left=100,top=1");
}
var images=new Array(6);
images[0] = (new Array('00_.gif'));
images[1] = (new Array('01_.gif'));
images[2] = (new Array('02_.gif'));
images[3] = (new Array('03_.gif'));
images[4] = (new Array('04_.gif'));
images[5] = (new Array('05_.gif'));
var image=new Array(6);
image[0] = (new Array('00.gif'));
image[1] = (new Array('01.gif'));
image[2] = (new Array('02.gif'));
image[3] = (new Array('03.gif'));
image[4] = (new Array('04.gif'));
image[5] = (new Array('05.gif'));

for(var i=0;i<6;i++)
{
img=images[i];
imgimg= image[i];
document.write("<div id='top'><img src="+img+" onclick='winOpen(imgimg)'/></div>");
}
</script>

код окна с картинкой большего размера:
<script type="text/javascript">
var img=location.hash;
img=img.substring(1,img.length);
var elt=document.body.innerHTML="<img src="+img+"onclick='winClose(img)'alt="+img+"/>";

function winClose(elt)
{
window.close(elt);
}
</script>

Отправлен: 03.07.2009, 14:58
Вопрос задал: infrared, Посетитель
Всего ответов: 2
Страница вопроса >>


Отвечает Иоффе Мэир Вэлевич, Студент :
Здравствуйте, infrared.

images[0] = (new Array('00_.gif'));

Обратите внимание на правую часть выражения. Она неверна.
Вы же не хотите построить массив массивов.

Просто измените её на

images[0] = '00_.gif';

То же истино также и для

image[0] = (new Array('00.gif'));

Замените это на

image[0] = '00.gif';

Теперь цикл.

document.write("<div id='top'><img src="+img+" onclick='winOpen(imgimg)'/></div>"); <- Так неправильно

document.write("<div id='top'><img src='"+img+"' onclick='winOpen(\"" + imgimg+ "\")'/></div>"); <- Так правильно


То же истинно так же и для

"<img src="+img+"onclick='winClose(img)'alt="+img+"/> "; <- Неправильно

"<img src="+img+"onclick='winClose(\"" + img + "\")'alt="+img+"/>"; <- Правильно

Далее

var elt=document.body.innerHTML

Совершенно непонтяно зачем Вы кладёте в переменну elt содержимое тэга body, если эта переменная нигде не используется.

window.close(elt) обращается к параметру функции, а не к глобальной переменной.

Кроме того, метод close объекта window никаких параметров не принимает.

То есть window.close(elt); <- Неправильно

window.close(); <- Правильно

Удачи.
-----
There are 10 types of people. Those who understand binary and those who don\'t.

Ответ отправил: Иоффе Мэир Вэлевич, Студент
Ответ отправлен: 03.07.2009, 21:32

Оценка ответа: 3
Комментарий к оценке:
Все работает кроме картинки большего размера. В ад.строкеIE типа... /home.html#01.gif?

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 251819 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Jokeroto, 3-й класс :
    Здравствуйте, infrared!
    Переписал код в приложении. Не работало по причине множественных ошибок в объявлении массивов(обратите внимание как я объявляю массивы - туда вносим строки и работаем потом со строками. Чтобы избежать ошибок контролируем ситуацию image[i].toString(); хотя это и не совсем обязательно, но лучше перебдить чем недобдить.) и путаницы в аргументе функции(в моем коде правильное обращение к текущей картинке.) И еще обратите внимание на экранирование кавычек \". Рад был помочь.

    Приложение:

    -----
    вся наша жизнь - игра

    Ответ отправил: Jokeroto, 3-й класс
    Ответ отправлен: 03.07.2009, 23:16

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 251821 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
    оценить выпуск >>

    подать вопрос экспертам этой рассылки >>

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.5 от 08.07.2009

    В избранное