![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| mlv11 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
В FireFox v.13 дает w1=w2=реальная ширина в px в IE 6 дает w1=w2=0 Как узнать размеры изображения в IE6 если оно прописано в теге <img id= src=> без width= height= ? Это сообщение отредактировал(а) Aliance - 25.7.2012, 09:37 |
|||
|
||||
| dstorm81 |
|
|||
![]() бездельник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1178 Регистрация: 18.1.2006 Где: (16RU) Репутация: 20 Всего: 39 |
а так?
-------------------- на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#) |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Если изображение закэшировано, оно загрузится сразу, и тогда размеры можно считать, как это делаете вы. Однако правильнее дождаться окончания загрузки изображения и только после этого считывать размеры. Окончание загрузки картинки «знаменуется» срабатыванием события onload объекта HTMLImageElement. |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
mlv11, атрибут ID должен содержать уникальный набор симвлов, начинающийся НЕ с цифры.
|
|||
|
||||
| mlv11 |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
Прошу подробнее о формулировке условия onload. Проблему я уже решила. Дело в загрузке изображений. Размер отображается только после загрузки. Пришлось ввести setInterval и setTimeout на этот процесс, а потом clear оба, но если есть прямое условие на проверку загрузки, то это здорово, а то таймаут методом тыка подбирала с запасом. Как записать это условие в коде? Добавлено @ 17:16
Спасибо за замечание, в коде я начинаю с букв, здесь слишком примитизировала описание проблемы. Хотя проверила сейчас - и цифровое ID работает Добавлено @ 17:19
Дико интересно. А зачем Вы пишете var? Я давно не пишу. Проблема была в том, что IE показывает нуль для ширины и высоты картинок, теперь ясно, что пока не загрузит. Меня это бесит - 6 секунд таймаута с запасом пришлось дать до обработки размеров, чтобы наверняка был не нуль размеров. Это сообщение отредактировал(а) mlv11 - 15.8.2012, 16:03 |
||||||
|
|||||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Вот вам пример
И это очень плохо. По-видимому, вы не вполне понимаете предназначение этой инструкции. Это сообщение отредактировал(а) Amphiluke - 28.7.2012, 19:48 |
|||
|
||||
| mlv11 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
var a;b=5; При задании конкретного значения переменной var излишен. Что же понимаете Вы? Умеете писать лишний код и поучать этому? |
|||
|
||||
| нуп |
|
|||
|
Ботокодер ![]() ![]() Профиль Группа: Участник Сообщений: 987 Регистрация: 22.6.2009 Где: Кременчуг Репутация: 13 Всего: 33 |
||||
|
||||
| Amphiluke |
|
||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
mlv11, не обижайтесь. ))
Инструкция var была придумана не дураками и она действительно важна для объявления переменных. Если вам интересно, могу попробовать пояснить отличия объявлений с var и без него, а также почему использование var при объявлении переменных настоятельно рекомендуется. Работа JavaScript-интерпретатора при обработке исполняемого кода состоит фактически из 2-х этапов:
Например:
Для объявлений, не использующих var, это всё уже несправедливо:
Если вы не используете инструкцию var, создавая новые «переменные», вы фактически просто создаете свойство глобального объекта, которое не участвует в процессе hoisting и на этапе интерпретации доступно не во всем родительском контексте, а только в той части, которое следует после объявления. Другое отличие объявлений с var и без него в том, что «истинные переменные» — свойства объекта переменных — обладают внутренним свойством, запрещающим их удаление оператором delete, в то время как «переменные», созданные без использования var, могут быть явно удалены оператором delete. Кроме того, более очевидное (и важное) отличие переменных, объявленных с использованием var, состоит в том, что для контекста, отличного от глобального (например, для контекста функции), такие переменные становятся локальными и не захламляют глобальное пространство имен. Следовательно код становится устойчивее к возможным конфликтам имен. А это один из важных показателей качества кода. Для серьезных продуктов критерий минимального количества глобальных переменных (в идеале — не более одного глобального имени) — это одно из категорических требований. Это сообщение отредактировал(а) Amphiluke - 5.8.2012, 12:34 |
||||
|
|||||
| mlv11 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
Моя первая книга "40 ВУЗов Москвы" вышла, возможно, до Вашего рождения. Но не по программированию, физ.-мат. |
|||
|
||||
| нуп |
|
|||
|
Ботокодер ![]() ![]() Профиль Группа: Участник Сообщений: 987 Регистрация: 22.6.2009 Где: Кременчуг Репутация: 13 Всего: 33 |
Тогда пишите про излишние конструкции в javascript
|
|||
|
||||
| mlv11 |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 23.7.2012 Репутация: нет Всего: нет |
По поводу начала - обращение к переменным до задания их значений экзотика. По поводу Вашего главного аргумента о том, что декларированные с var переменные локальны в функциях, а без var остаются глобальными? Т.е. на изменение значения в функции глобальной переменной, определённой с var, начхать, а вот если без var - то изменится? Делаем пример
Если бы Вы были правы, то в alert нам выдали бы a=3 b=2, но alert выдает новые значения для обех переменных a=3 b=4 Или в этом единственном стоящем аргументе Вы имели ввиду нечто иное? |
||||
|
|||||
| нуп |
|
|||
|
Ботокодер ![]() ![]() Профиль Группа: Участник Сообщений: 987 Регистрация: 22.6.2009 Где: Кременчуг Репутация: 13 Всего: 33 |
Я ничего вам не пытаюсь доказать, пишите как хотите
|
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
К переменным — может быть. Но с декларациями функций — повсеместно. Причем работает тот же механизм поднятия. Пример ваш непонятно, на что направлен, поскольку там нет ни одной локальной переменной. Я разве где-то сказал, что из функций невозможно изменить глобальные переменные, объявленные с var? |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
mlv11, описание переменной с var отводит этой переменной новое место в памяти в области видимости текущего тела функции. Если же пользоваться переменной не описывая ее, то она станет новым свойством глобального объекта. Для броузерного Javascript - объекта window. Проверить легко
Как можно заметить, при использовании var вне тела функции разницы между "описаниями" нету. переменная b становится свойством объекта window Вот, собственно и все отличие. Достаточно использовать в нужных местах несколько переменных с именами document, location и так далее (см. важные свойства window), чтобы потратить оставшуюся жизнь на поиск странных ошибок в сриптах -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |