![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Привет!!!
Пишу хелп для одной формы, возле каждого поля формы есть изображение с буквой ( i ), при нажатии на неё открывается новое окно, для этого окна программа на Perl генерирует HTML код, тело которого содержит только одну таблицу, внутри которой и находится сам хелп. Всё вроде чудно работает, но так как объём помощи для каждого поля разный, соответственно и высота таблицы тоже разная, нужно как-то автоматически изменять размер окна, в зависимости от его содержимого. Вопрос: Можно ли каким-нить способом открывать окно, с помощью window.open(), которое будет обхватывать эту таблицу так, что бы вокруг неё не оставалось пустого места??? Заранее спасибо, Денис Это сообщение отредактировал(а) korob2001 - 8.5.2005, 03:50 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Читаем размеры таблицы, подставляем их в третий аргумент метода:
http://www.quirksmode.org/viewport/compatibility.html http://forum.vingrad.ru/index.php?showtopic=37271 http://forum.vingrad.ru/index.php?showtopic=2785 http://forum.vingrad.ru/index.php?showtopic=4463 http://forum.vingrad.ru/index.php?showtopic=2786 Там можно найти полезный вещи. Не получится - пиши. И желательно выложи код... Код открытия окна и HTML код, получаемый браузером при обработке perl скрипта |
|||
|
||||
korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Aliance - да нет, меня не разрешение интересует.
Ладно поясню немного иначе: Есть некое изображение, на событие Click этого изображения вешаю такой код:
Открывается, к примеру, такая страничка:
Так вот, из первого кода видно, что высота нового окна height=280, а мне нужно что бы эта высота соответствовала высоте таблицы, второго кода, т.е. что бы не оставалось пустого места внизу открываемого окна. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
иам не только разрешение. Там есть и размеры блока - например scrollLeft korob2001 Вот, посмотри, выбири что тебе нужно. Я бы советовал бы scrollHeight:
|
||||
|
|||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
korob2001 узнаёшь свою высоту как показал Aliance, либо сам решаешь какая высота лучше, затем вызываем self.resizeTo(W, H), тем самым подгоняем размер окна.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Спасибо, вроде немного понял, но видимо не до конца.
Выношу в отдельный файл main.js, такую функцию:
Вешаю её на событие onLoad открываемого окна <body onLoad="selfResizer('s')">, где s - id таблицы, по которой мне нужно отрегулировать размер окна <table id="s">, но почему-то всё эта байда не работает ![]() ![]() Что не так??? Это сообщение отредактировал(а) korob2001 - 9.5.2005, 05:51 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
self и window указывают на текущее окно(синонимы). Судя по коду всё правильно, как "трабла" себя проявляет?
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Во, вроде заработало, просто я тестировал похоже не с тем окном. А почему этот код не изменяет размеры, если окно модальное???
Открываю окно так:
затем в на onLoad только что открытого окна вешаю тот же код:
Но размеры его не изменяются, хотя если заменить строку кода, которая отрывает модальное окно на window.open(.....) (обычное окно), то всё работает. Просто мне желательно, что бы эти окна открывались как модальные, так как это делаю в виде СПРАВКИ, чел не понял что делать с тем или иным полем, открыл окно, прочитал закрыл. Это сообщение отредактировал(а) korob2001 - 9.5.2005, 14:08 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Возможно это фича, модальное окно открывается, останавливая исполнение и лочиться в размерах. Попробуй не задать размеры(dialog(Width|Height)) при открытии окна.
Почему справка должна открываться в модальном окне? Представь что я читаю справку и выполняю по шагам, что там написанно, не закрывая окна. С модальным окном так не получиться, йзеру придётся часто окно открывать-читат и закрыватЬ-работать, пока его это не задолбает ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Да и потом работать они будут только в IE.
|
|||
|
||||
korob2001 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Не изменяет размеры модальных окон. ![]()
Каждое поле имеет свою справку, которую генерирует один и тот же Perl скрипт, допустим юзер вызвал справку для первого поля, окно отрылось, он прочитал её и вместо того, что бы закрыть окно справки, он просто уберает с него фокус. Затем он вызывает справку для какого-нить следующего поля, но так как окно уже открыто, справка загрузится в это окно, проблема в том, что оно так и остаётся свёрнутым, информация в нём правда меняется, но нужно не забыть, что окно было опущено, а не закрыто. Иначе он даже не заметит, что справка была вызвана и показана. Я вот думал сначала, узнать открыто ли окно спавки или нет, если да, то загружать в него следующую справку и тут же переводить на него фокус. Тогда спавка будет появляться не зависимо от того было ли окно свёонуто или закрыто. Затем подумал ещё чуток и вот до чего додумался: Так как код, который изменяет размеры окна, вызывается из открываемого окна, т.е. этот код:
То решил при каждом вызове данной функции просто переводить фокус на текущее окно, т.е. на окно справки.
Теперь даже если окно было свёрнуто, а не закрыто, то при последующем вызове оно получает фокус, что и было нужно. Потому нужда в модальных окнах отпала сама собой. Всем большое спасибо, очень помогли. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||||
|
|||||||||
Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Используй обычные окна. Просто глянь сюда и там есть то, что тебе нужно:
|
||||
|
|||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Aliance - Спасибо, но это даже не нужно, потому как если окно уже открыто, то при вызове следующей справки новое окно не открывается, просто подгружается информация в уже открытое окно.
Потому я просто передаю ему фокус при загрузке информации, т.е. хоть окно существует, хоть нет, в любом случае ему нужно передать фокус, что я и делаю в следующем коде:
Эта функция висит на событии onLoad, документа, который подгружается в окне. Другими словами, если окно уже открыто, то при клике на следующей кнопке HELP в него загружается нужная справка. Текущее, т.е. окно в котором выводится сама справка, получает фокус и затем меняет свои размеры в зависимости от размера единственной таблицы текущего документа. Если же окно было закрыто, то просто открывается окно со справкой, затем оно получает фокус и меняет свои размеры. Всё работает на ура. ;)))) Ещё раз спасибо. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
Vigoroso |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
Не могу подогнать размер содержимого под размер окна,
т.е. всякий раз при генирации странички она может быть наполнена различным кол-ом онформации, я не знаю её отчный размеров, как сделать так чтобы каждый раз окно рисовалось красиво? |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
вообще это нормально, что информация подстраивается под размер окна, а не наоборот
если вы знаете объём инфо, то можно при открытии окна задавать предполагаемые размеры, если не знаете, то можно js определить, скажем местоположение контрольного блочка, т.е. информация выводится в окне в каком-нибудь диве
|
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |