| imho.ws |
![]() |
|
|
|
# 1 |
|
Newbie
Регистрация: 17.06.2004
Сообщения: 38
![]() |
Проблемы с отладкой, помогите плиз
Здравствуйте!
Возникли проблемы с отладкой скрипта под разные браузеры. Значит, есть галерея работ - ТУТ При нажатии на превьюшку работы, с помощью скрипта по вызову Pop-up-окна, открывается новое Pop-up-окно, с увеличенной работой (рассмотрим код на примере первой превьюшки): <a href="javascript:newWin=void(window.open('branding_work1.htm','brandin g_work1','width=1,height=1'))" > <img src="img/branding_work1.jpg" width="68" height="68" border="0"> В коде странички Pop-up-окна у меня между тегами <head> </head>, прописан скрипт: <SCRIPT language="Javascript"> function resize_win(x,y){ var winPosX=screen.width/2-x/2; var winPosY=screen.height/2-y/2; window.moveTo(winPosX, winPosY); window.resizeTo(x+10,y+115); } </SCRIPT> А картинка, с увеличенной работой вставляется с помощью следующего кода: <img src="img/branding_work1_big.jpg" onload='resize_win(this.width,this.height);'> Дело в том, что работы имеют разные размеры и было нужно, что бы Pop-up-окно "перестраивалось" под размеры картинки (ширина="ширине картинки", высота= "высота картинки"+"80 пикселей" (на стрелочки и описание)). Вообщем, теперь о том, в чем заключаются собственно проблемы по отладке. Я детально изложила эти проблемы ТУТ (т.к. не хотела загромождать эту тему скриншотами и графикой). ![]() Буду безгранично благодарна, если кто-то поможет и подскажет, как можно устранить эти проблемы (или хотя бы часть проблем...) ![]() Заранее всем огромное спасибо за помощь.
Последний раз редактировалось Neto; 16.05.2005 в 01:21. |
|
|
|
|
# 3 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Neto
Несколько ответов, естественно не панацей: 1) Некоторые (я например всегда) запрещаю скриптам ресайзить окна браузера, поэтому это уже не есть здорово. 2) Размеры окон в Мозилла и ИЕ определяются поразному, это факт, с этим придется считаться, поэтому, если все-таки оставлять текущий вариант, то разные браузеры в скрипте учитывать придется явно. 3) (пункт 3.2 проблемы) Остановка анимации решается явным возвращением false при клике. Как сделано сейчас ИЕ останавливает анимацию, поскольку клик на ссылке предполагает переход по ней, и соответственно страница обычно эта будет покинута, и то что там используется void просто какбы осуществляет перехоуд "в никуда", поэтому его нужно явно отменить. Конкретное решение: Заменить Код:
<a href="javascript:newWin=void(window.open('branding_work1.htm','branding_work2','width=1,height=1,fullscreen=no,status=no,toolbar=no,menubar=no,resizable=no,scrollbars=no'))" onmouseover="show('im1', 'img/text_branding_work1-12.gif')" onmouseout="hide()">
Код:
<a href=# onclick="newWin=window.open('branding_work1.htm','branding_work1','width=1,height=1'); return false;" onmouseover="show('im1', 'img/text_branding_work1-12.gif')" onmouseout="hide()">
P.S. Мака нету к сожалению, поэтому сказать не могу ничего...
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
# 4 |
|
Newbie
Регистрация: 17.06.2004
Сообщения: 38
![]() |
RaZEr, спасибо большое за советы!
Hubbitus, спасибо огромнадное за твой ответ! ![]() По пункту 3.2 изменила код так, как ты посоветовал, и проблема отпала моментально! БИГ СЕНКС! По поводу ресайзинга, тоже последовала твоему совету - прописала напрямую в window.open() размеры окна, протестировав увидела, что отпала проблема с открытием "свернутых" окон в Опере. Так что тоже ГРОМАДНЫЙ СЕНКС! Остались теперь у меня еще проблемы с разными размерами окон в разных браузерах и проблемы с отладкой под Макинтошем
Последний раз редактировалось Neto; 16.05.2005 в 19:45. |
|
|
|
|
# 5 | |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Про МАК я писал что помочь к сожалению ничем не смогу
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
|
# 6 | |
|
Newbie
Регистрация: 17.06.2004
Сообщения: 38
![]() |
Цитата:
Я сама вообще не программер, но консультировалась по поводу скрипта, который бы мог определять браузер и в зависимости от браузера выполнять определенный код. Мне посоветовали скрипт такого типа (в скрипт работает так: если браузер = Мозилла Огненная лисица , то нужно выполнить код-1, иначе - код-2) (разумеется, что можно добавить индивидуальный код не только под Мозиллу, но и под большее кол-во браузеров, но для меня пока актуальным является именно 2 части кода - один код под Мозиллу, другой код под все остальные браузеры). Этот скрипт имеет вообщем такой облик: <Script Language='JavaScript'> var code = navigator.appCodeName; if ((name<>"Netscape") and (code<>"Mozilla")) {код для мозилы} else {код для других браузеров} </Script> Еще мне сказали, что перед каждой строкой кода, которая будет включаться в скобочки {код для мозилы} и {код для других браузеров} нужно дописать - document.write(', а в конце каждой строки - ');. Но когда я это все прописала, у меня вообще перестала отображаться визуально та часть кода, которую я запихнула в {} (я проверяла под IЕ, Лисой и Оперой - всюду результат аналогичен - вместо вывода скриптом нужного кода - белое полотно ).ВОТ страничка, где я прописала этот скрипт. (Код-1 и код-2 я пока одинаковый вставила, потом подправлю разумеется, главное что бы принцип скрипта работал) Может кто-то подскажет почему скрипт не работает? ![]() Р.S/ Никто не подскажет почему на этом форуме у меня не работает форматирование (при написании сообщения нельзя автоматически ни цвет сменить, ни жирность/наклон/подчеркивание, ни смайлики вставить, ни ссылку и т.п., я уже методом втыка вручную прописываю эти параметры, но это не удобно жутко... на других форумах у меня нормально всюду работает форматирование сообщений (браузером в основном пользуюсь MyIE2). Это у меня только такая беда или у других тоже? )
Последний раз редактировалось Neto; 17.05.2005 в 10:09. |
|
|
|
|
|
# 7 |
|
Junior Member
Регистрация: 14.09.2003
Адрес: тут
Сообщения: 60
![]() |
Синтаксическая ошибка (даже 2) -
Надо писать: if ((code!="Netscape") and (code!="Mozilla"))
__________________
Часто истина ... зависит от твоей точки зрения. © Оби Ван Кеноби.
Последний раз редактировалось nibl; 17.05.2005 в 04:57. |
|
|
|
|
# 8 | |
|
Newbie
Регистрация: 17.06.2004
Сообщения: 38
![]() |
Цитата:
Последний раз редактировалось Neto; 17.05.2005 в 10:19. |
|
|
|
|
|
# 9 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Neto, начнем с того что про нужность document.write('...') тебе в данном случае или неправильно сказали, или ты не правильно поняла.
Продолжим тем что у тебя в скрипте, на указанной странице уже есть определение браузера, когда устанавливается значение переменной roll, вполне можно было бы оттуда взять код, а вообще лучше было бы вообще структуру поменять чтобы определение происходило один раз. Естественно все что у тебя есть я переделывать не буду сейчас, посему предлагаю такое решение: Добавляешь вверху функцию: Код:
function diff_window(what_open){
var ua = navigator.userAgent.toLowerCase();
isIE = ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1));
isGecko = (ua.indexOf("gecko") != -1);
//isSafari = (ua.indexOf("safari") != -1); //Это соответственно Маковский Сафари, если нужен
//isKonqueror = (ua.indexOf("konqueror") != -1); //Если нужно, то расскоментируешь эти 2 строки и учтешь их дальше
if (isGecko){
alert('У Вас должно быть Моззилла (FireFox) или Netscape');
//Ниже идет пример открытия окна с параметрами, специфичными для браузера
//При необходимости раскомментировать
//newWin=window.open(what_open, 'window','width=400,height=300,fullscreen=no,status=no,toolbar=no,menubar=no,resizable=no,scrollbars=no');
}
else{
alert ('Другой браузер');
//Ниже идет пример открытия окна с параметрами, специфичными для браузера
//При необходимости раскомментировать
//newWin=window.open(what_open, 'window','width=300,height=200,fullscreen=no,status=no,toolbar=no,menubar=no,resizable=no,scrollbars=no');
}
return false;
}
Код:
<a href=# onclick="newWin=window.open('branding_work1.htm')" onmouseover="show('im1', 'img/text_branding_work1-12.gif')" onmouseout="hide()">
Ну и последнее, естественно это пример, все это можно записать в пару строчек удалив лишнее и комментарии.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|