※ ChatGPTを利用し、要約された質問です(原文:Windows/IEのみ「Null または オブジェクトではありません」のエラー)
Windows/IEのエラー「Null または オブジェクトではありません」の原因と解決法
このQ&Aのポイント
Windows/IEでの画像の置き換え関数実行時に「document[...]はNULLまたはオブジェクトではありません」というエラーが発生する原因と解決法について教えてください。
Windows/IEでのみ発生する「Null または オブジェクトではありません」エラーを解決する方法はありますか?画像をクリックして別の画像に置き換える関数で、Macや他のブラウザでは正常に動作していますが、Windows/IEでだけエラーが発生します。
質問です。WindowsとIEにおいて、画像をクリックして別の画像に置き換える関数を実行する際に「document[...]はNULLまたはオブジェクトではありません」というエラーが発生します。このエラーの原因と解決法を教えてください。
Windows/IEのみ「Null または オブジェクトではありません」のエラー
初めて質問します。
よろしくお願いします。
画像を一度クリックするとその画像を別の画像に置き換え、
もう一度クリックすると元に戻る、という関数を作りたいと考えています。
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)" />
よろしければ原因と解決法をご教授ください。
お礼
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)" />