Как использовать новый Image () в Internet Explorer 8? - PullRequest
3 голосов
/ 31 августа 2011

У меня неприятная проблема с Internet Explorer (конечно).Дело в том, что это не обновляет изображение в Internet Explorer 8, в то время как в других браузерах это происходит идеально.Я считаю, что проблема заключается в этой части кода, но я не могу понять, что это такое.

var img = new Image();
$(img).load(function() {
    monitor.holder.empty()
    .append(this)
    .fadeIn('fast');
}).addClass('round').attr({'src': 'ylemiste/'+ json.filename, 'alt': json.filename, 'width': '640', 'height': '480'});

Ответы [ 2 ]

0 голосов
/ 26 мая 2012

У меня была именно эта проблема, и после часов игры с различными опциями это было окончательное решение:

Структура кода Orig:

Примечание: это работало во всех браузерах, кроме одного, разработанного нашими друзьями в Microsoft.

var img = new Image();
var url = 'http://i.imgur.com/DQP7F.jpg';

$( img )
  /*wait for image to load*/
  .load( function () {

    alert( 'All loaded' );

  })

  /*problem getting img?*/
  .error( function() {

    alert( 'Bad things' );   

  })

  /*set img src*/
  .attr( 'src' , url );

.

с исправлением:

var img = new Image();
var url = 'http://i.imgur.com/DQP7F.jpg';

$( img )
  /*wait for image to load*/
  .load( function () {

    alert( 'I fire after the image has fully loaded' )

  })

  /*problem getting img?*/
  .error( function() {

    alert( 'Bad things' );   

  })

  /*set img src*/
  .attr( 'src' , url );

  /*IE hack; really hate you right now IE*/
  if( $.browser.msie && parseInt( $.browser.version ) < 10 ){

    img.src = url;

  }

Вы можете спросить: «Почему parseInt ($ .browser.version) <10 </em>, а не 9?» ... ну, я просто не доверяю IE, точка.Я бы предпочел просто дать IE9 исправление, а не решать какие-либо проблемы, связанные с IE.

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 31 августа 2011

Хорошо, я понял это.Проблема заключается в кэшировании вызова ajax:

$.ajax({ url: "last.php", dataType: "json", cache: false}).success(function(json){
    ...
});

Добавление: cache: false добилось цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...