В следующем JS функция.done запускается в FF, Chrome и Opera, однако в IE 10 и ниже она не исчезает. Идея этого - захват уникального идентификатора из URL-адреса, позволит коду решить, какой фотосет захвачен из учетной записи Flickr и отображен в слайдере, который будет использоваться в iFrame позже. Однако, когда дело доходит до IE10 и ниже,.done, кажется, полностью пропущен. Все, что находится ниже.getJSON, игнорируется.
$(window).load(function() {
var pathname = window.location.pathname;
var photoSetId = ['72157638321110124','72157638320688146','72157638320892573','72157638320142195', '72157638319052975'];
var setNum = window.location.href.split('?')[1];
var user = '110468775@N05';
var apiKey = 'fa3bd9c48f711aef070622ba60014b21';
var photoset = photoSetId[setNum];
var flickr = 'http://api.flickr.com/services/rest/';
$.getJSON( flickr, {
method: "flickr.photosets.getPhotos",
nojsoncallback: 1,
extras: "original_format",
api_key: apiKey,
photoset_id: photoset,
privacy_filter: '1',
format: 'json'
})
.done(function(data) {
console.log(data);
$.each( data.photoset.photo, function(i, item ) {
var url = 'http://farm' + item.farm + '.staticflickr.com/' + item.server + '/' + item.id + '_' + item.originalsecret + '_o.jpg';
var $li = $("<li>");
var $img = $("<img>").attr('src', url);
$img.appendTo($li);
$li.appendTo('.bjqs');
});
$('#slider').bjqs({
'height': 360,
'width': 640,
'showcontrols': true,
'centercontrols': true,
'showmarkers': false
});
});
});
Он работает во всех браузерах, кроме IE, потому что все браузеры, отличные от IE, поддерживают CORS с объектом XmlHTTPRequest, тогда как IE требует использования объекта XDomainRequest вместо IE11.
Чтобы исправить это, замените на jsonp, удалив параметр nojsoncallback, затем добавьте параметр jsoncallback в URL-адрес flickr, чтобы jquery знал, где поставить имя обратного вызова для flickr api.
var flickr = 'http://api.flickr.com/services/rest/?jsoncallback=?';
$.getJSON( flickr, {
method: "flickr.photosets.getPhotos",
//nojsoncallback: 1,
extras: "original_format",
api_key: apiKey,
photoset_id: photoset,
privacy_filter: '1',
format: 'json'
})