Проблема с загрузкой HTML-изображения - PullRequest
2 голосов
/ 16 июля 2010

У меня есть сайт, на котором я должен динамически загружать изображения. Я должен знать их ширину / высоту перед тем, как их сложить, поэтому я использую обработчик события onload. В любом случае я обнаружил, что иногда эти значения равны 0/0 даже в обработчике (это происходит в Chrome, и, поскольку я нацеливаюсь на webkit, это браузер для использования). Есть ли способ обеспечить это? Я имею в виду, что я мог бы использовать некоторые вещи, такие как setTimeout, в случае, если изображение равно 0/0, и перепроверить, пока оно не будет сделано, то, что я ищу, - это нечто более чистое и, возможно, с использованием методов DOM ...

Ответы [ 3 ]

0 голосов
/ 16 июля 2010

Вы используете событие onload изображения, верно? Если это ненадежно, я бы попытался записать изображение в DOM в виде скрытого элемента, а затем получить его размеры.

0 голосов
/ 17 июля 2010

Я не совсем уверен, чего вы хотите достичь. Единственная причина, по которой я могу представить, почему вам понадобятся ширина и высота изображения, заключается в том, что вы не хотите масштабировать изображение. Это кажется маловероятным, потому что это не приведет к чистому макету вашей страницы.

Если вы просто хотите сохранить соотношение сторон, установите для изображений определенную высоту, а затем оставьте высоту на авто (например, в классе CSS):

 .myImg {
     /* ... */
     width: 150px ;
     height: auto ;
     /* ... */
 }

Таким образом, у вас будет чистый макет, сохраняющий пропорции ваших изображений, при этом вам не придется использовать сценарии для изменения их ширины и высоты. Изображения в HTML сохраняют пропорции по умолчанию.

НТН

0 голосов
/ 16 июля 2010

это событие onload в заголовке вашей страницы?У меня были некоторые проблемы, когда он стоял в голове.

Вы также можете поставить свой JavaScript перед концом тела.В этом случае вам не нужно событие onload.

...