确定gravatar是否使用javascript返回默认图像

var gravatar1;
var gravatar2;
var email1 = $(email1).val();
email1 = $.trim(email1);
email1 = email1.toLowerCase();
email1 = md5(email1);
gravatar1 = 'http://www.gravatar.com/avatar/' + email1;
var email2 = $(email2).val();
email2 = $.trim(email2);
email2 = email2.toLowerCase();
email2 = md5(email2);
gravatar2 = 'http://www.gravatar.com/avatar/' + email2;

有没有办法确定gravatar1是否返回默认图像,以便我可以覆盖gravatar1来显示gravatar2图像.如果返回默认图像,gravatar2仅覆盖gravatar1.谢谢!

最佳答案
如果您向网址添加d = 404,则如果用户没有图像集,则gravatar将返回404状态而不是默认图像.

http://www.gravatar.com/avatar/098f6bcd4621d373cade4e832627b4f6?s=80&d=404(用户图像不可用)

将返回404.

http://www.gravatar.com/avatar/c9ef50b85bd345ea4e0d8da558816f3d?s=80&d=404(提供用户图片)

将返回图像.

所以你可以执行下面的操作,基本上遍历所有img.gravatar-img元素,获取src,设置上面提到的d = 404,然后为src发送请求(类型:HEAD),

如果页面返回404,将运行错误块,允许您用一个可用的图像替换图像的src,我个人在图像上有默认图像,即

或者相反 – 你可以将src设置为默认图像用成功块替换错误块,因此如果存在gravatar图像替换默认图像,这将阻止在页面上显示“未找到”图像,如果JS是禁用或者如果ajax调用需要时间.

$("img.gravatar-img").each(function(i,el) {
imgUrl = $(el).attr("src") + "&d=404";

// Image Does Not Exist
  $.ajax({
    url:imgUrl,type:"HEAD",crossDomain:true,error:function(){
      $(el).attr("src",$(el).attr("data-defaultimg"));
    }
  });
});

相关文章

1.第一步 设置响应头 header('Access-Control-Allow...
$.inArray()方法介绍 $.inArray()函数用于在数组中搜索指定的...
jquery.serializejson.min.js的妙用 关于这个jquery.seriali...
JS 将form表单数据快速转化为object对象(json对象) jaymou...
jQuery插件之jquery.spinner数字智能增减插件 参考地址:http...