繁体   English   中英

jQuery .done函数无法在IE中触发

[英]jQuery .done function not firing in IE

在下面的JS中,.done函数在FF,Chrome和Opera中启动,但是在IE 10及更低版本中不会关闭。 它的想法是从网址中获取唯一的标识符,这将使代码能够确定从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以外的所有浏览器都支持带有XmlHTTPRequest对象的CORS,而IE要求在IE11之前使用XDomainRequest对象。

要解决此问题,请通过删除nojsoncallback参数交换为使用jsonp,然后将jsoncallback参数添加到flickr url中,以便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'
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM