アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めて質問します。
よろしくお願いします。

画像を一度クリックするとその画像を別の画像に置き換え、
もう一度クリックすると元に戻る、という関数を作りたいと考えています。
Macを含め大体のブラウザで実現できたのですが、Windows/IEでのみ
「document[...]はNULLまたはオブジェクトではありません」
というエラーが出て実行できません。

実例:
http://www.cloudandwater.jp/

以下ソースです。

// サムネイルをその場でズーム

var clicked = new Array();
var oldpath = new Array();

function zoom(path, thumb, name) {

if (typeof(clicked[name]) == 'undefined') {
document[name].src = path;
oldpath[name] = thumb;
clicked[name] = true;
} else {
document[name].src = oldpath[name];
delete clicked[name];
}

}

// 呼び出し例

<img src="thumbnail.jpg" name="1" onClick="javascript:zoom('large.jpg', this.src, this.name)" />

よろしければ原因と解決法をご教授ください。

A 回答 (1件)

nameをidに変えて


document.getElementById(name).src
でアクセスするようにしてみてはどうでしょうか
    • good
    • 0
この回答へのお礼

BLUEPIXYさん、素早い返答ありがとうございます。
うまくIEでも実行できるようになりました。
ありがとうございました。

今後同じような疑問を持った方のため
変更後のソースを書いておきます。

// サムネイルをその場でズーム

var clicked = new Array();
var oldpath = new Array();

function zoom(path, thumb, id) {

if (typeof(clicked[id]) == 'undefined') {
document.getElementById(id).src = path;
oldpath[id] = thumb;
clicked[id] = true;
} else {
document.getElementById(id).src = oldpath[id];
delete clicked[id];
}

}

// 呼び出し例

<img src="thumbnail.jpg" id="1" onClick="javascript:zoom('large.jpg', this.src, this.id)" />

お礼日時:2006/01/07 17:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!