外部ファイルでプリロード



0   名前: はじめ : 2005/10/17 11:03
画像をプリロードする際、
これまでは、DWで書き出したものを使用していたのですが、
自分で書いてみようと思い、検索して調べてみて
下記のように書いてみたのですが、
これでうまく書けているのでしょうか?

JavaScriptの勉強を始めたばかりの初心者で
基本的な質問で申し訳ございませんが、よろしくお願いします。

index
├images - aaa.gif
└js - common.js

■JSファイル

function Preload() {
var img = new Array();
for (var i=0; i < 3 ; i++) {
img[i] = new Image();
}
img[0].src = "../images/aaa.gif";
img[1].src = "../images/bbb.gif";
img[2].src = "../images/ccc.gif";
}

■HTMLファイル
<script language="javascript" src="js/common.js"></script>
</head>
<body onLoad="Preload()";>

また、
外部でJSファイルを持つ場合の、プリロード画像のパスも
これでいいのでしょうか?

よろしくお願いします。

1   名前: m035 : 2005/10/17 11:03  [URL
画像のsrcですが、jsのsrcと同じように../は先頭に要りません。
img[0].src = "images/aaa.gif";
img[1].src = "images/bbb.gif";
img[2].src = "mages/ccc.gif";

2   名前: 馬場 : 2005/10/17 11:03
var s =
document.scripts ||
document.getElementsByTagName && document.getElementsByTagName('script');
// <script src="/js/common.js"> を取得して、置換すれば、どの HTML にも使える。
var base = s && s.item(s.length - 1).src.replace(RegExp("js([\\\\/])[^\\1]+$"), "images$1");


function Preload() {
if (base) {

//
var src = new Array("aaa.gif", "bbb.gif", "ccc.gif");
//

var img = new Array();
for (var i = 0, src_length = src.length; i < src_length; i++) {
img[i] = new Image();
img[i].src = base + src[i];
}
}
}

一覧へ戻る