邪罗刹的菠萝阁


> 此文送给强力的 Zww 童鞋,祝愿他变得更加强力哈,^O^。主要是如何用 jQuery 载入 Gravatar 头像。
> 不过因为突然发现 JavaScript 木有自带 md5 函数,所以不得不载入某牛人的第三方代码库来搞定它。

一. 演示地址:

> o(* ̄▽ ̄*)ゞ 强力滴传送门 - http://www.evlos.org/apps/demo/jquery_001

二. 代码解释:

jQuery(document).ready(function($){
	$('#box .submit').click(function(){
		$('#box .ava').html('<img src="http://gravatar.com/avatar/'+hex_md5($('#box .mail').attr('value'))+'?s=180&r=G" />');
	}); //hex_md5函数可以把mail地址转换为md5形态
//s=180 (s参数表示头像的尺寸,单位是像素)
//r=G (r参数表示头像的显示等级,G表示通用等级)
//d=Xxx (d参数为默认头像地址,可以舍弃)
});

三. 源代码下载:

> Md5.js - http://code.google.com/p/evlosbox/downloads/detail?name=md5.js&can=2&q=
> Jquery-1.4.2.min.js - http://code.google.com/p/evlosbox/downloads/detail?name=jquery-1.4.2.min.js

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>Ajax Gravatar Demo V1</title>
	<style type="text/css">
		#box {
			margin:30px;
		}
		#box .submit {
			color: #aaa;
		}
		#box .submit:hover {
			color:blue;
			cursor:pointer;
		}
	</style>
	<!-- 注意$的兼容性,如果发生冲突,请自行改成jQuery -->
	<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
	<script type="text/javascript" src="md5.js"></script>
	<script type="text/javascript">
		jQuery(document).ready(function($){
			$('#box .submit').click(function(){
				$('#box .ava').html('<img src="http://gravatar.com/avatar/'+hex_md5($('#box .mail').attr('value'))+'?s=180&r=G" />');
			});
		});
	</script>
</head>
<body>
	<div id="box">
		<p><input class="mail" value="4tyle8@gmail.com" /> || <span class="submit">点击这里获取头像</span>(可自行用blur() 方法或其他方法替换)</p>
		<p>头像:</p>
		<p class="ava"></p>
	</div>
</body>
</html>

四. 随记:

> 已经顺利到荷兰鸟,前几天小邪一直在弄新房子,还有身份证和银行卡地址也要变更,花了好多时间。
> 然后到学校处理完事物。今天终于回来鸟,装死期结束,正常的代码人生开始继续咯。

Leave a comment
128 Comments.
  1. Kada Mozilla Firefox Windows 坐沙发!#1

    继续读书还是直接移民过去了啊?

    @
  2. 飞晏 Google Chrome Windows 坐板凳!#2

    代码牛人,跟着你们学习~~

    @
  3. BoKeam Google Chrome Windows 躺地板!#3

    JQ载入有什么好入?因为现在大多用的本地缓存头像

    @
  4. 小松 Mozilla Firefox Windows 天花板!#4

    这个主要是用来预览你的头像用的吧,防止一不小心把邮箱填错~

    @
  5. fatkun Google Chrome Windows 下水道!#5

    :idea: 出国,羡慕 :idea: :idea:

    @
  6. winy Google Chrome Windows 地心!#6

    嗯,一句话jquery就能实现,我用的就是这个。不过md5函数有点大,我是判断有无访客cookie,没有才载入这个js

    @
  7. :biggrin: 世界跑遍遍

    @
  8. 荷兰好遥远 :exclaim: :exclaim:

    @
  9. 现在提交评论速度挺快的

    @
  10. 这个应用很实用啊。

    @
  11. 我来也,博主的博客还算干净,我那里都让垃圾评论充斥了。

    @
  12. 也要送给我滴,等了很久这文~~~~回头整合上

    @
  13. 荷兰真是好地方啊,你可以穿裙子喽~

    @
  14. 好大一个md5...

    @
  15. 额的神啊,头像都那么邪恶

    @
  16. 小邪的技术越发精湛了 :idea: ;在荷兰生活怎样。。。 :biggrin:

    @
  17. 啊哦!这个很强悍哦!呵呵

    @
  18. 这个做一个缓存再读取,呵呵!

    @
  19. 昨天刚用到了这个技术,用的 blur :mrgreen:

    @
  20. :mrgreen: 这个demo收藏 留着手动更新缓存头像用 :exclaim:

    @
  21. 以前用过这个原理

    @
  22. 含笑不语。。。 :neutral:

    @
  23. 终于有一个可以很轻松的看懂的了, :mrgreen:

    @
  24. 在荷兰哦,好牛 :biggrin:

    @
  25. Nice!MD5.js最喜欢了...

    @
  26. 文章不错,加油

    @
  27. 在荷兰。。多好哇 :biggrin:

    @
  28. 强悍 学习下

    @
  29. 期待你在荷兰的照片 :biggrin:

    @
  30. 偷偷告诉你,我已经用上啦~ :mrgreen: :mrgreen:

    @
  31. 这个方法我现在不折腾了,需要另外加载md5函数js,我精简过的代码也很快了,但方法还是收藏先,或许以后要用到,嘿嘿。
    小邪又出国了啊,荷兰对于我来说好遥远……

    @
  32. :evil: 原来你都跑到这么远的地方啦。。唉我比较头痛让评论者自觉去注册一个Gravatar头像。。

    @
  33. 发现楼上所有的都有头像,看来这东西已经是人手一个了,呵呵,Gravatar还是非常方便啊。

    @
  34. 哇哈哈,会不会有人记录那个演示邮箱,然后冒充楼主去别的地方评论呢,记得以前wange就发生过类似的事情。

    @
  35. Jquery 和 缓存 哪个更好一些?

    @
  36. 不知道有什么用?

    @
  37. 看起来好复杂 :exclaim:

    @
  38. 小邪的肉身又出国啦?怎么不吱一声,把我塞在行李包里带出去啊 :razz:

    @
  39. 学习下·我都一直没有折腾JQ

    @
    • @哲哲 , 唔,有时候对新出来的东西总是觉得很麻烦 ~
      不过只要一开始接触,就发现很轻松了呢 ~

      @
  40. 明儿我也去河南一趟, :lol:

    @
  41. 去荷兰采花嘛?哇哈哈 :redface: :redface:

    @
  42. 有点想折腾一下

    @
  43. 强烈建议多写点生活。。 想瞧瞧荷兰的美女 :biggrin:

    @
  44. :wink: 我觉得这个功能没多大用处。

    @
  45. :exclaim: 俺是膜拜正常的代码人生来的。

    @
  46. 小邪的功力又增加啦。
    uuto.org快过期可,地址换成vine.cc

    @
  47. winymm的头像预览效果咩
    小邪的头像一撮毛竖起来好可爱>_<

    @
  48. 新朋友来访 人气好旺啊 :lol:

    @
  49. 暂时用不上,一看就是好东西

    @
  50. 小邪,
    帶我去Taiwan :mad: :mad: :mad: :mad: :mad: :mad:

    @
  51. 有一个代码强人被偶发现鸟~

    @
  52. 真的好羡慕呀。代码学的这么好。

    @
  53. 小邪果然强悍,学习了 :twisted:

    @
  54. 果然很强悍,找了很久了这个,终于找到了,搜藏了。多谢!继续关注中

    @
  55. :?: 我在调用的时候想先判断一下,如果这个用户没有注册头像就显示提示注册,如果有就直接显示头像(调用头像的时候加上“?d=404”);各种方法(success、error,判断返回值什么的)都失败了,LZ有什么好方法呢?

    @
    • @mz , 唔,没有注册的时候应该返回的就是那个默认图像,小邪的思路是获取一小部分的这个图像的二进制内容,作为特征,以后获取到的图像都对比一下,相同的话就说明木有注册。不过好像实现起来有点麻烦,唔,先回复这个吧,回头小邪找找看。

      @
      • @小邪 , :twisted: 俺自己解决了,不过要用到Jquery1.5以上版本里的$.ajax({statusCode: {200: function (){ }}});

        @
        • @mz , o(* ̄▽ ̄*)ゞ,额,200应该是正常的状况,那么不正常的状况是啥,400么?(=@__@=)。好像没头像的时候也显示的是默认头像呀,难道显示默认头像的同时也能返回400?o(╯□╰)o,糊涂咯,求解。o(* ̄▽ ̄*)ゞ。

          @
          • @小邪 , = -||是我没说清楚……在调用G头像时在后面加上?d=404时,如果这个MD5HASH没有头像就会返回一个404,就不用分析图像啦

            @
  56. :evil: 牛人啊...

    @

Leave a Reply


[ Ctrl + Enter ]