前の記事 ≪:2009年6月3日 管理人のブックマーク
次の記事 ≫:シンプルで綺麗にデザインされたWEBアプリなどに使える汎用アイコン...

JavaScriptで画像のリンク切れをチェックする方法

2009年06月04日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法

JavaScript で、画像本来のサイズ(幅, 高さ)を取得する方法 - latest log

JavaScriptで画像のサイズ(幅,高さ)をとる方法があって詳しく紹介されていて分かりやすいです。



ここで、画像のリンク切れをチェックする方法が書かれていなかったので書いてみます。

var img = new Image();
var url = 'http://phpspot.org/blog/img/notfound.jpg'; // あえて存在しない画像を指定
img.onload = function() {
    alert('width='+img.width+' , height='+img.height);
};
img.onerror = function() {
    alert(url+' is dead');
};

img.src = url;

赤文字の部分を記述しておけば、エラー時に alert されるというもの。
リンク切れかどうか、というより正確には画像読み込み時にエラーが発生した場合のイベントハンドラ onerror に処理を入れてるものです。

ブラウザで画像を先読みさせて、正常の場合は幅と高さを計算して適切に表示、エラーの場合は処理を変えるといった感じに応用することが出来ます。
Ajaxアプリケーションなどで、存在するかどうか分からない画像を JavaScript にてチェックできる上に、サーバ側でなくブラウザ側でチェックしてしまうことでサーバ負荷の軽減が出来る筈。

外部サイトの画像を読み込む場合、相手側のサーバへの負担を軽減するために、一旦取得した、幅、高さ、存在するかどうか については、自分側でキャッシュした方がベターですかね。

IE、Firefox、Safari、Chrome、Operaにて動作確認しています。

関連エントリ

関連の記事検索:画像, チュートリアル, Web制作
スポンサード リンク

By.KJ : 2009年06月04日 07:01 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)