Please Help!

  • Автор темы jaunty
  • Дата начала
Статус
Закрыто для дальнейших ответов.
J

jaunty

#1
Огромная просьба
если кто-то разбирается в тонкостях JS помогите понять почему фотографии в новом окне не открываются в ОПЕРЕ? У меня 7.21
http://pesnyari.com/photo.html
заранее спасибо за любые предположения

:)
 
S

STYX

#2
У меня Опера 7.21. Окно открывается, грузятся около 70 кило, но ничего не появляется. Лень разбираться, что у тебя там не работает, просто дам тебе рабочий скрипт:
onclick = "window.open ('url','name','param')
параметры указываются без пробелов, через запятую
toolbar=[yes|no|1|0] - обычные кнопки
location=[yes|no|1|0] - адресная сторока
directories=[yes|no|1|0] - ссылки
status=[yes|no|1|0] - строка состояния
menubar=[yes|no|1|0] - меню
scrollbar=[yes|no|1|0] - скрулбар
resizable=[yes|no|1|0] - развернуть/востановить
width=[pазмеp в пикселах] - ширина
height=[pазмеp в пикселах] - высота
top=[pазмеp в пикселах] - растояние сверху
bottom=[pазмеp в пикселах] - растояние снизу
left=[pазмеp в пикселах] - растояние слева
right=[pазмеp в пикселах] - растояние справа

Пример:
Код:
   <a href="#" onclick = "window.open ('code.html', 'n_w', 'height=250,width=350,left=420,top=16,status=no,toolbar=no,menubar=no,locatio
n=no'); return false;">Окно с заданными параметрами</a>
 
J

jaunty

#3
<!--QuoteBegin-STYX+12:03:2004, 15:58 -->
<span class="vbquote">(STYX @ 12:03:2004, 15:58 )</span><!--QuoteEBegin-->Пример:
Код:
     <a href="#" onclick = "window.open ('code.html', 'n_w', 'height=250,width=350,left=420,top=16,status=no,toolbar=no,menubar=no,locatio
n=no'); return false;">Окно с заданными параметрами</a>
[/quote]
спасибо конечно, но это можно найти в любом справочнике, а хотелось бы сделать для всех фоток одну функцию и без создания лишних файлов вроде code.html.
их же там придется делать 8шт

:)
 
H

HuMmmBug

#4
jaunty

generate open

тут в архиве примерно как можно сделать. если надо чтобы функция сама в титул подставляла название файла (с/без директорий), то добавь в функцию разбор строки.

вобщем, не маленький. ECMA доступна всем. напишешь. %)
 
J

jaunty

#5
:)
конено спсибо
но гадом буду опера глючит
баг 100%: окно открывает и даже на локалке грузит имг до бесконечности пока не остановишь загрузку

пора на http://www.opera.com/
 
H

HuMmmBug

#6
в опере 7.21 - фиг его знает.

работает скрипт в Opera 7.1, IE 5.0-6.0.1, Mozilla 1.1

одно могу сказать точно - это не баг скрипта. совершенно.
 
S

STYX

#7
Функция:
function viewImage(src)
{
// загружаем изображение
prevImg = new Image();
prevImg.src = src;

// получаем высоту и ширину
w = prevImg.width;
h = prevImg.height;

viewer = window.open(src, "PREV", "width=" + w + ",height=" + h +
"toolbar=no,status=no,scrollbars=no,menubar=no,resizable=no");

viewer.document.body.style.padding = 0;
viewer.document.body.style.margin = 0;
viewer.document.body.style.textAlign = "center";

viewer.resizeTo(w+10,h+30);

viewer.focus();

return false;
}
Вызов:
<A onclick="return viewImage(this.href);"
target="PREV" href="../images/gallery/start_paket.gif">
картинка №1 в виде ссылки</a>
 
J

jaunty

#8
OK
:rolleyes:
все работает
STYX если не сложно обясни для чего
Код:
viewer.resizeTo(w+10,h+30);
есть догадка что все дело в разной трактовке браузерами блоковой модели
там что-то майкрософтовские прогр-ры начудили (смутные воспоминания из ЦCC: дивной верстки )

а вот это вообще не понятно
Код:
"PREV", "width=" + w + ",height=" + h +
+ h + ??????
и с кавычками ????

:huh:
 
S

STYX

#9
Происходит изменение размеров окна с помощью функции resizeTo() — оно нужно при последующих вызовах, если размеры картинки будут иными. Вообще-то, такой вариант построения функции был найден мною опытным путём, поэтому если кто-то из аудитории знает более правильный способ делать это, и не против им поделиться.

+ h + ??????
и с кавычками ????
Cоздаётся объект типа Image, с помощью которого и осуществляется определение размеров изображения. Потом открывается окно, где и подставляются найденные значения ширины и высоты. Переменные вставляются в строку параметра — с помощью оператора соединения строк “+”. Просто так формируется команда браузеру на открытие заданного окна.
 
H

HuMmmBug

#10
тож вариант.

только с вещами типа

viewer.document.body.style.

можно поиметь проблем. так как фигачится это через стили.


jaunty
ну вот ты удивил и рассмешил вопросом. если тебе непонятно что-то в тривиальной конкатенации, то.... ну я просто и незнаю даже что. %)
 
J

jaunty

#11
aunty
ну вот ты удивил и рассмешил вопросом. если тебе непонятно что-то в тривиальной конкатенации, то.... ну я просто и незнаю даже что. %)
да все просто
Код:
$w.=$w
как-то попривычнее будет
:huh:
каюсь подзабыл я скрипты
:rolleyes:
 
J

jaunty

#12
Происходит изменение размеров окна с помощью функции resizeTo() — оно нужно при последующих вызовах, если размеры картинки будут иными. Вообще-то, такой вариант построения функции был найден мною опытным путём, поэтому если кто-то из аудитории знает более правильный способ делать это, и не против им поделиться.
Код:
[q]viewer.resizeTo(w+10,h+30);[/q]
Не очень понятно, что именно ты хотел сделать, я скриптом воспользовался, но эту строчку вообще убрал.

ЗЫ
очень советую почитать
http://webmascon.com/topics/coding/38a.asp
 
S
#13
Просто все открывается в одном окне, перед этим убираются все отступы. Потом если будут новые размеры картинки, в твоем случае все одинаковые, то будет изменяться и окно. Но можешь убирать ее. И если у тебя все работает, мои поздравления. Удачи!
 
Статус
Закрыто для дальнейших ответов.