Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > Как получить текущие параметры элемента? |
Автор: AtaL 25.2.2006, 23:14 | ||
Скрипты изучаю по книге, но неточностей в ней столько, что хоть вешайся. Дошла до стилей, столкнулась со следующей проблемой. Пусть есть рисунок, идентификатор - myimage. Чтобы получить его параметры ( допустим, var sizeX, sizeY; sizeX = myimage.style.pixelWidth; sizeY = myimage.style.pixelHeight; ) через style нужно сперва в описании стиля эти параметры задать, это понятно. В книге сказано, что текущие параметры без предварительного задания можно получить через currentStyle или runtimeStyle. Однако в первом случае на выходе undefined и undefined, во втором - 0 и 0. На всякий случай - полный пример скрипта в стадии отладки:
О рациональности не заботилась. Первые два алерта выдают все верно. Третий в данном случае тоже. Если убрать жесткое задание параметров размера в стиле, то третий тоже выдает нули. Как получить текущие параметры без их задания? |
Автор: 12345c 26.2.2006, 00:49 | ||
Не знаю, как по-книжному, а по опыту и отзывам на форумах наиболее правильные и стабильные в браузерах значения размеров берутся из .offsetWidth (не style). Если читать стили, то если они не заданы, получаем пустую строку. За обращение внимания на currentStyle и runtimeStyle - спасибо, интересно было поисследовать. Первый, оказывается, принудительно что-то выдаёт по умолчанию, а второй столь же молчалив, как style. Тестовый пример (IE):
|
Автор: AtaL 26.2.2006, 01:50 |
12345c Спасибо, все работает. А я-то мучилась.) Кстати, пример взят из книги Дронова "Джава-скрипт в веб-дизайне". И это уже не первый случай... Интересно книга устарела или просто не вычитана? |
Автор: 12345c 26.2.2006, 03:24 |
http://www.wmate.ru/ebooks/book92.html. Можно сказать, что сделана она на базе книги Гудмана "Библия JS, 4-е издание", которая есть в электронном виде. В ней много полезнейших сведений. Те несоответствия, вероятно, объясняются большим серьёзным объёмом материала, который надо было издать. Время полной актуальности этой книги - 2001-й год. Сейчас надо тщательно фильтровать и не читать то, что относится к NN4, т.к. бесполезно. Всё, что относится к модели событий и DOM в не-IE, нужно читать в документации Мозиллы. Фильтровать ошибки - видимо, так, что проверять работу каждой встреченной в IE конструкции. Для правильного представления об NN/Gecko читать документацию http://js2.ru/files/js-man.rar , построенную, видимо, на книге ftp://ftp.uar.net/pub/e-books/javascript%20programmer's%20reference.pdf?L=17372291 и учитывающей NN6. Понятно, что современные методы (Ajax, XML, IE6) там не описаны, как и Опера с Мозиллой, и их надо узнавать из статей и форумов. |