LINUX.ORG.RU

Можно ли здесь без eval?

 , ,


0

1
<script>
str="alert(this.height)"
</script>
<img src="image.jpeg" height="500" onload="eval(str)"></img>
<img src="image.jpeg" height="300" onload="eval(str)"></img>

Попробовал с функцией — не работает. Со строкой — вроде нормально. Интересует именно вариант с присваиванием onload в теге img. Я в курсе, что если через JS вытащить img, работать будет и с функцией. И BTW, вот этот код

fu=function(){this.height=20}
img=document.images[0]
img.onload=fu
В файерфоксе работает, а в опере нет. В других не проверял. Есть ли кроссбраузерный аналог? И главное — хочу понять, что тут не так?

Если я правильно тебя понял, то с jquery как-то так:

$(function () {
    $("img").load("load", function() {
        $(this).height(20);
    });
});

Wolfram ()

не уверен что правильно тебя понял, но попробуй так: evt = function () { alert (this.height); } ... onload=«evt» (или даже onload=«return evt(this);»)

thesame ★★★★ ()
Ответ на: комментарий от Wolfram

А без jquery никак? Меня больше интересует в данном случае не решение, я не врубаюсь до конца, что тут вообще происходит, хочу понять.

anonimous ()
Ответ на: комментарий от anonimous

не понятно тогда, что у тебя не работает

<script type="text/javascript">
fu = function(img) {
    alert(img.height);
} 
</script>
<img src="1.jpg" onload="fu(this)" />
или вообще так
<img src="1.jpg" onload="alert(this.height)" />

Wolfram ()

В файерфоксе работает, а в опере нет.

Ты уверен, что когда ставишь свой onload= картинки ещё не загрузились? Это тебе не Promise.

anonymous ()
Ответ на: комментарий от anonymous

Тут разговор за конкретную картинку. конечно на момент отрабатывания по onload она должна загрузиться.

anonymous ()
Ответ на: комментарий от anonimous

А без jquery никак? Меня больше интересует в данном случае не решение, я не врубаюсь до конца, что тут вообще происходит, хочу понять.

Легко - тебе нужно поставить обработчик на событие DOM ready. Есть неплохие готовые скрипты т.к. решение требует уровень абстракции для разных реализаций в браузерах.

swwwfactory ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.