1

コンテンツ全体を解析してリンクを見つける必要があり、リンクに pdf、doc、xls、ppt などの拡張子が付いている場合は、リンクの横にファイルタイプとファイルサイズを追加します。

Stack Overflow using で jQuery を使用してファイル サイズを取得する例を見つけましたgetResponseHeader("Content-Length")が、これはすべてのリンクに対して常に同じファイル サイズを返します。誰もこれのサンプルを持っていますか? どんな助けも非常に役に立ちます。

私の現在のコード(拡張機能はまだチェックしていません)

<script type="text/javascript">
    $(document).ready(
        function () {
            $('a').each(function (index, obj) {                    
                var eleHref = $(obj).attr('href');
                var extension = eleHref.substr((eleHref.lastIndexOf('.') + 1)).toUpperCase();
                var request;
                request = $.ajax({ type: "HEAD", url: $(eleHref).val(), success:
                function () {
                    $(obj).append(" (" + extension + ", " + parseFloat(request.getResponseHeader("Content-Length") / 1024).toFixed(2) + 'KB)');
                }
                });
            })             
        });            
</script>
4

1 に答える 1

2

画像/ドキュメントが同じドメインにあると仮定すると、これは機能するはずです。

$('a').each(function() {

  var $this = $(this)
    , href = $this.attr('href')
    , ext = /(jpg|png|gif|doc|ppt|xls)$/i.exec( href )
    , req;

  if ( ext.length ) {
    req = $.ajax({
      type: 'HEAD',
      url: href,
      success: function() {
        var size = +req.getResponseHeader('Content-Length') / 1024 + 'KB';
        $this.append('<span>Extension: '+ ext +'</span>')
             .append('<span>Size: '+ size +'</span>');
      }
    });
  }

});

編集:必要に応じて、拡張機能をオブジェクトにマップして詳細情報を取得できます:

var extensions = {
  ppt: 'Microsoft PowerPoint',
  doc: 'Microsoft Word',
  pdf: 'Adobe Portable Document Format',
  ...
};

その後:

...
$this.append('<span>Extension: '+ extensions[ ext ] +'</span>')
...
于 2012-11-06T00:15:50.853 に答える