jQuery.done函数未在IE中启动
jQuery .done function not firing in IE
在下面的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之外的所有浏览器都支持带有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'
})
相关文章:
- 从IE中的不同元素调用时,文件输入控件未正确启动
- IE 11未在SVG地图上启动Mouseenter或Mouseleave事件
- 是否可以从在Firefox或IE的网页中运行的Javascript启动Windows进程
- IE窗口失去了对任何XMLHttpRequest启动Angular应用程序的关注
- jQuery.done函数未在IE中启动
- window.onload未在IE中启动
- Mouseover,Mouseout事件未在IE中启动
- jwPlayer sendEvent 未在 IE 中启动
- 当正文调整大小时,IE在调整大小时启动
- 使用javascript在html中启动和停止嵌入音乐仅适用于IE
- IE 10 keyup/keydown未使用jQuery 1.10.1启动
- onChange不在Safari的下拉列表中启动,适用于IE、FF、Chrome和;歌剧
- IE 11企业模式在我们的应用程序中自动启动
- firefox上的Javascript函数问题没有通过jquery键盘输入启动计数器(在Chrome和IE上工作)
- 如何只等待文件.readyState在IE中,而在所有其他浏览器中立即启动
- 如何访问IE XHTML DOM+JS引擎,而无需启动浏览器本身
- 不能在Selenium中启动带有WebDriverJs的ie浏览器
- jQuery flash对象点击事件未在IE或Chrome中启动
- $(document).ready在IE中只启动一次,但在Firefox中有效
- 卸载activex后,以管理员模式重新启动IE浏览器