2016-09-13 3 views
2

Я написал этот код:Почему я получаю два разных значения в разных браузерах?

var i = new Image() 
 
i.src = 'http://img1.vued.vanthink.cn/vudeaW1naW4wOjExOjA5MjM5OjQ1.jpeg'; 
 
i.onload = function() { 
 
    // i.width = 1024; 
 
    $(i).css('width',1025/2); $('body').append(i); 
 
    alert(i.width); 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Когда я бегу, что (например, в Дев инструментов), я получаю 150 в Safari, но 513 в Chrome:

enter image description here

enter image description here

Почему?

+2

(не проблема, но обратите внимание: Вы хотите подключить событие * перед тем * установка 'src'. [Подробности в примере в [этом ответе] (http://stackoverflow.com/a/39315451/157247)].) –

+0

@TJCrowder Спасибо. Я получил. –

+0

Вы дважды проверили, что значение свойства CSS 'box-sizing' не отличается между двумя браузерами? –

ответ

-1

кажется, что с помощью JQuery для подключения события OnLoad, делает это, как вы ожидаете

var i = new Image() 
 
$(i).css('width',1024/2); 
 
$('body').append(i) 
 
$(i).load(function() 
 
{ 
 
    alert($(i).width());  
 
}); 
 
i.src="55141873_46dbf53454_o.jpg";

+0

По крайней мере, что сработало для меня в этом Chrome и сафари, и на выходе 512 – jonbdk

+0

функция загрузки не делает то, что вы думаете (она загружает данные из вызова ajax и добавляет ее к вызываемому ей элементу), правильный способ связать событие загрузки в jquery isone («load», function() { – valepu

Смежные вопросы