![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| TetraHC |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
Всем добрый день! Пишу сайтик http://cabel.skrovla.ru
Одним из условия заказчика, было реализовать строку подсказки поиска - введите например букву "а" (русскую) в поле поиска кабеля, и вылезет подсказка. Собсвенно элемент позиционирован как: position:absolute Так вот дело в том, что в зависимости от экрана браузера координаты поля ввода меняются. Из можно определить ТОЛЬКО через JAVASCRIPT, что я с успехом делаю. Но вот далее, надо вывести css файл с этими координатами (я делаю это на php), и вот тут вопрос - как передать значения left и top в php? Вариант через GET не прокатит, так как адреса у страницы php нет - это МОДУЛЬ JOOMLA. Вопрос - как быть? Код:
Примечание - строка "<script language="JavaScript" type="text/javascript" src="./suggest/clienthint.js"></script>" отношения к делу не имеет, это javascript для передачи данных технологией AJAX Собсвтенно на JAVA мы определяем postion left и top, и надо их вставить вместо текущий фиксированных позиций ( 719px, 316px для обычного юзера и 719px и 546px для менеджера). PS Есть вариант отказатся от php и сделать вывод только методом JAVSACSRIPT (documet.write), но я так и смог заставить document.write выводить html код в тело страницы (хотел делать вставки кода типа <input name="name" value="width" type=hidden> |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Я думаю Вы копаете не в ту сторону. Зачем PHP что-то знать о координатах? Мухи отдельно, котлеты отдельно - помните?
Делайте при загрузке страницы автоформатирование на JS. |
|||
|
||||
| TetraHC |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
А как мне тогда средствами JS вывести в тело html следующие строки:
, где X и Y - координаты элемента <input id="txt4" ...> ? Это сообщение отредактировал(а) Aliance - 9.6.2009, 12:59 |
||||
|
|||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Я показал как статично задать координаты. Тебе же нужно не статично, а динамически, прочитав их из соотв. координат нужного тебе элемента ( т.е. input с id='txt4' ). Как это сделать - ответит тебе поиск по форуму, просмотр прикрепленных тем и FAQа |
|||
|
||||
| TetraHC |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
Погоди, но ведь элемент c id="txt4' появится уже после выполение JS? Как же я узнаю при загрузки страницы положение того элемента, которого нет? Кстати, спасибо за ответы и попытку мне помочь. Ты первый (!) кто это сделал на 3 форумах! |
||||
|
|||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
window.onload - событие, которое выполнится только после полной загрузки документа вместе со всем его содержимым (подробнее о событиях - по ссылке у меня в подписи). После этого мы будем уже знать о существовании элемента с id равным txt4.
|
|||
|
||||
| TetraHC |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
Итак, я продолжаю ковырять свою задачу. Немного разобрался с кодом, понял что такое window.onload. Пока, для отладки скрипта, не вешаю его на window.onload - как получу 100% рабочий вариант, то повешу.
Итак имеем код:
Итак, что мы имеем с "Гуся" 1) Скрипт работает в FireFox, Opera. Но только не в IE - там он определяет координаты как 0 2) В IE не работает команда
Помогите одолеть эту Майкрософтовую гадину! Пример работы скрипта с определением координат тут - http://cabel.skrovla.ru |
||||
|
|||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Возможно это именно от того что ты не сделал как я говорил - не повесил скрипт в window.onload и IE не видит еще этого элемента. Это лечится нулевым setTimeout.
Еще проблема может быть в том, что для того чтобы прочитать какое-то свойство из elem.style.*, нужно чтобы оно было явно объхявлено для элемента (через стили, например). |
|||
|
||||
| TetraHC |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
C windows.onload работа скрипта не связана никак - в теле html скрипт 100% выполняется после этого элемента. Фишка в том, что не срабатывает (именно в IE) функция getElementPosition - возращает нули на выходе. В других браузерах все ОК |
|||
|
||||
| Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: 1 Всего: 5 |
Фишка в том что этой функцией пользуется пол интернета, включая меня лично, и она вполне адекватно работает во всех актуальных браузерах. А теперь скажите какой версии у вас IE. -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
| TetraHC |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
7.0.5730.13 точная версия
Значит, функция рабочая? Хм. Очень интересно.... |
|||
|
||||
| Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: 1 Всего: 5 |
В 7 версии работает точно, за 5 я бы не поручился, но начиная с 6....
-------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
| TetraHC |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
Ну тогда говоря русским языком "мой косяк". Но глаз уже так замылен на сайте, что не понимаю где...Я вроде 3 функции разные там проверил ( GETBOUNDS, в инете тоже есть) - т.е. где то косяк вне :( |
|||
|
||||
| Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: 1 Всего: 5 |
Вы бы выложили в сеть примерчик какой-нить мы бы посмотрели и помогли если что -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
| TetraHC |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
Листинг примера:
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |