Изменение размеров картинки через скрипт
Помогите пожалуйста, у меня на сайте в комментариях можно вставлять картинки тэгами со ссылкой на сервисы типа radikal.ru, а проблема в том что любой может запостить как безобидный аватор, так и огромную 5мегапиксельную фотку, с последствиями для дизайна и чтоб этого не было, я написал такой несложный ява-скрипт:
Код: <img border="0" id="i1217675751" onload=" var s=getElementById('i1217675751'); var w=s.width; var h=s.height; var wr=screen.width-590; var hr=screen.height-590; if(wr<435){wr=435;} if(w>=h){ if(w>wr){ this.width=wr;this.height=h/(w/wr); } } if(w<h){ if(h>hr){ this.height=hr;this.width=w/(h/hr);} }" src="1.jpg"> Так вот в ИЕ 6.0, firefoxе проблем никаких, а вот в опере он почемуто не работает, даже через функцию alert пробил значения переменных w и h - ослик с лисом выдают реальные размеры картинки, а опера возвращает нули. Что нужно исправить? |
Изменение размера картинкиможно скачать отсюда.
|
Цитата:
|
Что-то типо такого:
<script type="text/javascript"> window.onload = function(){ var img = document.getElementById('div').getElementsByTagName('img'), i = img.length; while(i--){ var computed = window.getComputedStyle ? getComputedStyle(img[i], null) : img[i].currentStyle; img[i].style.width = parseInt(computed.width) >= 100 ? '100px' :''; } }; </script> <div id="div"> <img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt="" /> <img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt="" /> </div> или такого: <script type="text/javascript"> window.onload = function(){ var img = document.getElementById('div').getElementsByTagName('img'), i = img.length; while(i--){ img[i].style.width = img[i].offsetWidth >= 100 ? '100px' : ''; } }; </script> <div id="div"> <img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt="" /> <img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt="" /> </div> |
на всякий случай )))
Цитата:
так как у img есть свойство width, достаточно проверить его. Пример: <script type="text/javascript"> window.onload = function () { for (var a = document.getElementById("div").getElementsByTagName("img"), b = a.length; b--;) a[b].width >= 100 && (a[b].width = "100") }; </script> <div id="div"> <img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt="" /> <img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt="" /> </div> |
Часовой пояс GMT +3, время: 10:15. |