<script type="text/javascript">
<!--
document.write("このページは " + document.fileSize + " バイトです。");
// -->
</script>
※取得するサイズはページのファイルのみなので画像等は含まれません。なお、Internet Explorer のみ動作いたしますが、Internet Explorer 11 では document.fileSize は使用不可になりました。IE11 の互換性の変更点
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>サンプル</title>
<script type="text/javascript">
<!--
window.onload = function() {
if (document.fileSize) {
var size = document.all("pic").fileSize;
document.all("result").innerHTML = "この画像は " + size + " バイトです。";
}
}
// -->
</script>
</head>
<body>
<img src="./image.gif" alt="" name="pic"><span id="result"> </span>
</body>
</html>
上記のようにサイズを取得したいエレメントに fileSize として、id 指定したエレメントに表示 (innerHTML) します。なお、Macintosh 版の Internet Explorer では、エレメントに指定した場合の取得はできないようです。(Mac IE 5.14 で確認)
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>サンプル</title>
<script type="text/javascript">
<!--
window.onload = function() {
if (document.fileSize) {
for (var i = 0; i < document.images.length; i++) {
var size = parseFloat(document.images[i].fileSize);
document.images[i].title = size + " Bytes";
}
}
}
// -->
</script>
</head>
<body>
<img src="./image1.gif" alt="">
:
:
<img src="./image6.gif" alt="">
</body>
</html>
for 文でこのページ内の画像ファイルのサイズを全て取得します。document.images.length は、このページの画像の個数という意味です。念のためにファイルサイズを parseFloat() で数値にして取得します。それをそれぞれの画像に対して、ツールチップ表示します。
この例では、画像にマウスがポイントした時ファイルサイズが表示されます。
<script type="text/javascript">
<!--
window.onload = function() {
if (!document.fileSize) return;
var size = parseFloat(document.fileSize);
for (var i = 0; i < document.images.length; i++) {
size += parseFloat(document.images[i].fileSize);
}
window.status = "このページは " + size + " バイトです。";
}
// -->
</script>
このようにページ自体のサイズとページ内の画像のサイズを複合代入して取得します。(body タグに指定した画像と外部スタイルシート等のサイズは含まれません)
この例では、ステータスバーに表示します。