addSizes.js 自定标注链接文件的大小

 

来源: OurJS.cn , 原文: http://www.ourjs.cn/show.php?id=448

 

 

addSizes.js 是一段 JS 代码 , 用于从一个页面里链接的一些大的文件 , 并自动在它们的链接旁边标注文件大小。它的作者是 Nathalie Downe ,应用了 Simon Willison json-head App Engine 迷你服务。

使用它,你的链接不需要额外的代码,它自动会在页面里找到你的链接并更改为这样的格式,如 你的链接 (pdf 2.8 MB)” 。的确很好用!

 

JAVASCRIPT:

 

jQuery( function ($) {

 

    $( 'a[href$=".pdf"], a[href$=".doc"], a[href$=".mp3"], a[href$=".m4u"]' ).each( function () {

         // looking at the href of the link, if it contains .pdf or .doc or .mp3

         var link = $( this );

         var bits = this .href.split( '.' );

         var type = bits[bits.length -1];

               

         var url= "http://json-head.appspot.com/?url=" +encodeURI($( this ).attr( 'href' ))+ "&callback=?" ;

 

         // then call the json thing and insert the size back into the link text

         $.getJSON(url, function (json) {

                if (json.ok && json.headers[ 'Content-Length' ]) {

                        var length = parseInt(json.headers[ 'Content-Length' ], 10);

 

                        // divide the length into its largest unit

                        var units = [

                              [1024 * 1024 * 1024, 'GB' ],

                              [1024 * 1024, 'MB' ],

                              [1024, 'KB' ],

                              [1, 'bytes' ]

                         ];

 

                         for ( var i = 0; i <units.length; i++) {

 

                               var unitSize = units[i][0];

                               var unitText = units[i][1];

 

                               if (length>= unitSize) {

                                       length = length / unitSize;

                                       // 1 decimal place

                                       length = Math.ceil(length * 10) / 10;

                                       var lengthUnits = unitText;

                                        break ;

                               }

                         }

                          // insert the text directly after the link and add a class to the link

                         link.after( ' (' + type + ' ' + length + ' ' + lengthUnits + ')' );

                         link.addClass(type);

                     }

           } );

     } );

} );


来源: OurJS.cn , 原文: http://www.ourjs.cn/show.php?id=448

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值