Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложности отладки в Опере, Продолжаем обсуждение. Вот вам скрипт. 
:(
    Опции темы
Се ля ви
Дата 22.7.2004, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



Посмотреть работу можно сдесь: http://spo.mirtour.ru/4travelbureaus/proposals/bulgary/

Текст скрипта вот:
Код

//gallery.js

   function galaryWindowOpen(PicSrcPath, thisPicNumber, maxPictureNumber, width, height, title){
   
       galaryWindow = window.open(
           '',
           'galaryWindow',
           'channelmode=0,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=' + width + ',height=' + height + ',top=100,left=' + (screen.width - width) / 2);
       
       galaryWindow.document.writeln('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
       galaryWindow.document.writeln('<html xmlns="http://www.w3.org/1999/xhtml"><head><title>' + title + '</title>');
       
       galaryWindow.document.writeln(    '<style><!--/*[CDATA[*/');
       galaryWindow.document.writeln(        'img.hidden {visibility: hidden;}');
       galaryWindow.document.writeln(        'img.visible {visibility: visible;}');
       galaryWindow.document.writeln(        'img {bodrer: 0px; margin: 0px; padding: 0px;}');
       galaryWindow.document.writeln(        'span.thisPic {cursor: text;}');
       galaryWindow.document.writeln(        'span.otherPic {cursor: pointer; color: #FF6000; font-weight: bold;}');
       galaryWindow.document.writeln(    '/*]]*/--></style>');
       
       galaryWindow.document.writeln(    '<script><!--//[CDATA[');
       galaryWindow.document.writeln(        'var counter = new Number(' + thisPicNumber + ');');
       galaryWindow.document.writeln(        'var maxPictureNumber = new Number(' + maxPictureNumber + ');');
       galaryWindow.document.writeln(        'function swichPic(picNumber){');
       galaryWindow.document.write(            'document.getElementById(\'picture\').setAttribute(');
       galaryWindow.document.write(                '\'src\',');
       galaryWindow.document.writeln(             '\''+ PicSrcPath + '\' + picNumber + \'.jpg\');');
       galaryWindow.document.writeln(         'document.getElementById(\'linkPic_\' + counter).className = \'otherPic\';');
       galaryWindow.document.writeln(            'counter = picNumber;');
       galaryWindow.document.writeln(            'document.getElementById(\'linkPic_\' + counter).className = \'thisPic\';');
       galaryWindow.document.writeln(            'document.getElementById(\'arrowRight\').className = ((counter < maxPictureNumber) ? \'visible\' : \'hidden\'); ');
       galaryWindow.document.writeln(            'document.getElementById(\'arrowLeft\').className = ((counter.valueOf()) ? \'visible\' : \'hidden\'); ');
       galaryWindow.document.writeln(        '}');
       galaryWindow.document.writeln(    '//]]--></script>');
       
       galaryWindow.document.writeln(    '</head><body><div style="text-align: center;">');
       
       //Тег для основной картинки
       galaryWindow.document.writeln(        '<img id="picture" src="' + PicSrcPath + '' + thisPicNumber + '.jpg" /><p />');
       
       //Ссылка на предыдущую картинку (стрелочка "<")
       galaryWindow.document.writeln(        '<img id="arrowLeft" class="' + ((thisPicNumber) ? 'visible' : 'hidden') + '" src="/img/4travelbureaus/proposals/bulgary/previous.gif" style="cursor: pointer;"');
       galaryWindow.document.writeln(            'onClick="swichPic(counter.valueOf() - 1);" />');
       
       //Ссылка на слудующую картинку (стрелочка ">")
       galaryWindow.document.write(        '<img id="arrowRight" class="' + ((thisPicNumber < maxPictureNumber) ? 'visible' : 'hidden') + '" src="/img/4travelbureaus/proposals/bulgary/next.gif" style="cursor: pointer;" ');
       galaryWindow.document.writeln(            'onClick="swichPic(counter.valueOf() + 1);" /><br />');
       
       //Вывод прямых ссылок на картинки по номерам
       for(var i = new Number(0); i <= maxPictureNumber; i++){
       
           galaryWindow.document.write(    '[<span id="linkPic_' + i + '"');
           galaryWindow.document.write(        'onClick="swichPic(' + i + ');"');
           galaryWindow.document.writeln(      'class="' + ((i == thisPicNumber) ? 'thisPic' : 'otherPic') + '">' + (i + 1) + '</span>]');
       }
       
       galaryWindow.document.writeln('</div></body></html>');
   }


Как осуществляется вызов:
Код
...
<script language="javascript1.2" type="text/javascript" src="/scripts/gallery.js"></script>
...
<!-- Открывает галерею в новом окне, грузит туда картинку с номером 0, и строит навигацию по картинкам до 11-й (все картинки находятся в папке ''/img/gallery1/', их имена начинаются с 'galleryPic_' и заканчиваются номером счётчика, нумерация начинается с 0, хотя для пользователя она начинается с единицы, по сравнению с миенами файлов), размеры окна 530x460, титл окна - 'Галерея 1' -->
<a href="javascript:galaryWindowOpen('/img/gallery1/galleryPic_', 0, 11, 530, 460, 'Галерея 1');"><img src="/img/galleryButton.jpg" alt="смотреть галерею 1" /></a>
...


Создаётся впечатление, что оперу хвалят только верстальщики, которые пишут только самые простейшие скрипты в JS (хотя пообсуждать то, как опера непонимает некоторые фичи HTML-а это тоже отдельная тема). Чем сложнее скрипт, тем нужнее отладчик, которого в ней нет, именно по-этому она ещё хуже експлорера, под которого она старательно радится по-умолчанию, потому что хоть IE стандарты W3C и не держит, он всё-таки дебаггер хоть какой-то имеет...

Это сообщение отредактировал(а) Се ля ви - 22.7.2004, 15:42


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
mix
Дата 22.7.2004, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 23.2.2003

Репутация: нет
Всего: 1



У меня в опере 7.50 вроде работает, без картинок.
С картинками потестить не удалось, по ссылке сходил а какая именно кнопка там окно открывает не нашёл.
А что такое отладчик для Javascript, это когда в случае ошибки появляеться окошечко с содержанием ошибки?
PM MAIL   Вверх
Се ля ви
Дата 22.7.2004, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



1) По ссылке зайди и нажми на картинке справа - она так и называется - "Фотогалерея. Болгария". Лошади там ещё нарисованы и мужик в повозке на задем плане.
2) Работать-то работает, но в Опере - с глюками.
3) В мазилле и в IE есть дебаггеры (причём в Мазилле поставляется сразу, а для IE надо отдельно закачивать с msdn.microsoft.com) - это прога, например, для эксплорера если стоит, которая при ошибке в скрипте сразу возникает окошко с предложением запустить отладчик. Дебуггер говорит, в какой строчке возникла ошибка и сообщает в чём она заключается, после чего ты можешь посмотреть значения всех переменных, прогнать страницу заново пошагово выполняя каждую инструкцию скрипта и в любой момент остановившись узнать (и даже поменять, но этим лучше не пользоваться - запутаешься совсем) значения всех переменных и вывести результат любых операций. В отдельном окне там и выполнять операции можно и всё что хочешь - кароче ты в дебаггере полностью просматриваешь и контролируешь пошаговое выполнение программ (в данном случае - скриптов :-) ).


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
mix
Дата 22.7.2004, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 23.2.2003

Репутация: нет
Всего: 1



Ага посмотрел, глюков в опере не заметил.
Можно поконкретнее, что в опере работает нетак/не работает?
PM MAIL   Вверх
Се ля ви
Дата 22.7.2004, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



У меня опера 7.0 - она выводит ссылку только на первую картинку, и соответственно только стрелку вправо. эта кнопка срабатывает ровно один раз, при этом циферка становится-таки ссылкой. Если в опере 7.5 этот баг убрали, я рад :-) Но ни в IE начиная с 5.0, ни в Мазилле начиная с 1.1 (младше у меня нету) этого бага и не появлялось...

Скрипт написан в строгом соответствии с DOM1, выпущенного по-моему, году в 98... Рад что в последней версии Opera 2004 года этот стандарт всё-таки реализовали! :-))))) Когда я уже буду растить внуков, видимо, дело и до DOM3 в Oper`е дойдёт!.. То-то будет праздник! >;-)

Дорога ложка к обеду. А "лучше поздно, чем никогда" - лозунг неудачников.


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
mix
Дата 23.7.2004, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 23.2.2003

Репутация: нет
Всего: 1



alt+p->Multimedia->javaScript options (button) ->Open Javascript console on error (checkbox)
Поставь галочку, и тогда после ошибки будет появляться окошко с причиной ошибки.
Просто посмотреть консоль можно так:
Tools->consoles->JavaScript console



PM MAIL   Вверх
Се ля ви
Дата 26.7.2004, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



Спасибо. Это, канешь, лучше чем ничего... <:-)

Хотя дебаггер бы пригодился гораздо сильнее... Когда конкретная ошибка в сценарии - это поможет, но когда скрипт просто почему-то работает не так, как нужно, но без ошибок - такая штука не поможет... :-( Для таких вещей и нужен нормальный дебаггер...

Нпример, вышеприведённый скрипт - ошибок не выдаёт... А работает не правильно...

Это сообщение отредактировал(а) Се ля ви - 26.7.2004, 07:33


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1157 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.