2010-12-31 12 views
2

jsスクリプトが実行されているドキュメントの実際のファイルサイズ(ピクセル単位ではない)をどのように取得できますか?ソリューションは、すべての主要なブラウザで動作するはずです。jsでhtml文書のサイズを取得する方法は?

+0

@Petre - ファイル、あなたが参照しています。ブラウザに読み込まれたHTMLファイルですか? –

+0

@Julianはいブラウザに読み込まれたhtmlファイル – nope

+0

以下に述べるように、Ajaxリクエスト以外の実行可能なオプションは考えられません。おそらく、すべてのDOM要素を解析し、内部HTMLと外部HTMLの長さをチェックします。しかし、それはかなり誤りがちで、遅くて馬鹿だ。 :) –

答えて

1

ajaxを介してページを適切に再取得し、その長さを文字列として取得できますが、別のHTTP要求をトリガーして待機する必要があるため、これは最適ではありません。

0

これは、あなたがのみ JSを使用して、ページの完全なソースを見に行くだろうと同じくらい近いです:

document.documentElement.innerHTML 

あなたは、ファイルのための出発点として返された文字列を使用することができますサイズ。イメージを検討する必要がある場合は、DOMツリーを走査して各img要素を検査することによって、そのサイズを手動で追加する必要があります。これは、jQueryのまたは類似のライブラリセレクタを経由して簡単に行うことができます

$("img").each(function() {...});

あなたはさらにFlashやJavaのような要素を考慮する必要がある場合は、JSで完全にこれを行う方法はありません。 AJAXリクエストを実行して、サーバーに参照ファイルのサイズを伝える必要があります。

2

//

function hrefSize(){ 
    try{ 
     var O= new XMLHttpRequest; 
     O.open("HEAD", document.URL, false); 
     O.send(null); 
     if(O.status== 200){ 
      return O.getResponseHeader('Content-Length'); 
     } 
     else return 0; 
    } 
    catch(er){ 
     return 0; 
    } 
} 
alert(hrefSize()+' bytes'); 
+1

+1はHEADリクエストを行いにくいです。 –