• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Please Help!

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

jaunty

Огромная просьба
если кто-то разбирается в тонкостях JS помогите понять почему фотографии в новом окне не открываются в ОПЕРЕ? У меня 7.21

заранее спасибо за любые предположения

:)
 
S

STYX

У меня Опера 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

<!--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

jaunty



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

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

jaunty

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

пора на
 
H

HuMmmBug

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

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

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

STYX

Функция:
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

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

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

:huh:
 
S

STYX

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

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

HuMmmBug

тож вариант.

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

viewer.document.body.style.

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


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

jaunty

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

да все просто
Код:
$w.=$w
как-то попривычнее будет
:huh:
каюсь подзабыл я скрипты
:rolleyes:
 
J

jaunty

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

Код:
[q]viewer.resizeTo(w+10,h+30);[/q]
Не очень понятно, что именно ты хотел сделать, я скриптом воспользовался, но эту строчку вообще убрал.

ЗЫ
очень советую почитать
 
S

STYX

Просто все открывается в одном окне, перед этим убираются все отступы. Потом если будут новые размеры картинки, в твоем случае все одинаковые, то будет изменяться и окно. Но можешь убирать ее. И если у тебя все работает, мои поздравления. Удачи!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!