| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > IE6 размер изображения |
| Автор: mlv11 23.7.2012, 14:47 | ||
В FireFox v.13 дает w1=w2=реальная ширина в px в IE 6 дает w1=w2=0 Как узнать размеры изображения в IE6 если оно прописано в теге <img id= src=> без width= height= ? |
| Автор: dstorm81 24.7.2012, 13:51 | ||
а так?
|
| Автор: Aliance 25.7.2012, 09:39 |
| mlv11, атрибут ID должен содержать уникальный набор симвлов, начинающийся НЕ с цифры. |
| Автор: mlv11 28.7.2012, 17:15 | ||||||||||
Прошу подробнее о формулировке условия onload. Проблему я уже решила. Дело в загрузке изображений. Размер отображается только после загрузки. Пришлось ввести setInterval и setTimeout на этот процесс, а потом clear оба, но если есть прямое условие на проверку загрузки, то это здорово, а то таймаут методом тыка подбирала с запасом. Как записать это условие в коде? Добавлено @ 17:16
Спасибо за замечание, в коде я начинаю с букв, здесь слишком примитизировала описание проблемы. Хотя проверила сейчас - и цифровое ID работает Добавлено @ 17:19
Дико интересно. А зачем Вы пишете var? Я давно не пишу. Проблема была в том, что IE показывает нуль для ширины и высоты картинок, теперь ясно, что пока не загрузит. Меня это бесит - 6 секунд таймаута с запасом пришлось дать до обработки размеров, чтобы наверняка был не нуль размеров. |
| Автор: Amphiluke 28.7.2012, 19:45 | ||
Вот вам пример
И это очень плохо. По-видимому, вы не вполне понимаете предназначение этой инструкции. |
| Автор: mlv11 5.8.2012, 10:51 | ||
var a;b=5; При задании конкретного значения переменной var излишен. Что же понимаете Вы? Умеете писать лишний код и поучать этому? |
| Автор: нуп 5.8.2012, 12:17 | ||
Судя по вашему опыту, вам нужно книжки писать. |
| Автор: Amphiluke 5.8.2012, 12:31 | ||||
| mlv11, не обижайтесь. )) Инструкция var была придумана не дураками и она действительно важна для объявления переменных. Если вам интересно, могу попробовать пояснить отличия объявлений с var и без него, а также почему использование var при объявлении переменных настоятельно рекомендуется. Работа JavaScript-интерпретатора при обработке исполняемого кода состоит фактически из 2-х этапов:
Например:
Для объявлений, не использующих var, это всё уже несправедливо:
Если вы не используете инструкцию var, создавая новые «переменные», вы фактически просто создаете свойство глобального объекта, которое не участвует в процессе hoisting и на этапе интерпретации доступно не во всем родительском контексте, а только в той части, которое следует после объявления. Другое отличие объявлений с var и без него в том, что «истинные переменные» — свойства объекта переменных — обладают внутренним свойством, запрещающим их удаление оператором delete, в то время как «переменные», созданные без использования var, могут быть явно удалены оператором delete. Кроме того, более очевидное (и важное) отличие переменных, объявленных с использованием var, состоит в том, что для контекста, отличного от глобального (например, для контекста функции), такие переменные становятся локальными и не захламляют глобальное пространство имен. Следовательно код становится устойчивее к возможным конфликтам имен. А это один из важных показателей качества кода. Для серьезных продуктов критерий минимального количества глобальных переменных (в идеале — не более одного глобального имени) — это одно из категорических требований. |
| Автор: mlv11 15.8.2012, 16:12 | ||
Моя первая http://phm.at.tut.by/Tutor.htm вышла, возможно, до Вашего рождения. Но не по программированию, физ.-мат. |
| Автор: нуп 15.8.2012, 16:55 |
| Тогда пишите про излишние конструкции в javascript |
| Автор: mlv11 15.8.2012, 17:00 | ||||
По поводу начала - обращение к переменным до задания их значений экзотика. По поводу Вашего главного аргумента о том, что декларированные с var переменные локальны в функциях, а без var остаются глобальными? Т.е. на изменение значения в функции глобальной переменной, определённой с var, начхать, а вот если без var - то изменится? Делаем пример
Если бы Вы были правы, то в alert нам выдали бы a=3 b=2, но alert выдает новые значения для обех переменных a=3 b=4 Или в этом единственном стоящем аргументе Вы имели ввиду нечто иное? |
| Автор: нуп 15.8.2012, 17:13 |
| Я ничего вам не пытаюсь доказать, пишите как хотите |
| Автор: Amphiluke 16.8.2012, 08:30 | ||
К переменным — может быть. Но с декларациями функций — повсеместно. Причем работает тот же механизм поднятия. Пример ваш непонятно, на что направлен, поскольку там нет ни одной локальной переменной. Я разве где-то сказал, что из функций невозможно изменить глобальные переменные, объявленные с var? |
| Автор: ksnk 16.8.2012, 11:34 | ||
mlv11, описание переменной с var отводит этой переменной новое место в памяти в области видимости текущего тела функции. Если же пользоваться переменной не описывая ее, то она станет новым свойством глобального объекта. Для броузерного Javascript - объекта window. Проверить легко
Как можно заметить, при использовании var вне тела функции разницы между "описаниями" нету. переменная b становится свойством объекта window Вот, собственно и все отличие. Достаточно использовать в нужных местах несколько переменных с именами document, location и так далее (см. важные свойства window), чтобы потратить оставшуюся жизнь на поиск странных ошибок в сриптах |