WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:Winではエラー オブジェクトではありません

0:[投稿] さちこ [MAIL] [2003/03/16 15:06 ][環境:IE5.1 Mac わからない]

皆様はじめまして。
MacユーザーでIE5.1で動作チェックをしていたのですが、Winで見たら一部動かない?!
途方に暮れています。誰か助けて下さい。お願いします。

希望動作

1, 3フレーム(ABCとする)に分け、Aの画像の一部を触るとBのフレームの画像がカラーに変換、
  クリックをするとCにその拡大画像が表示。
2, Bの画像を触れると、その画像がカラーに変換。
  クリックでCに拡大画像が表示されます。

Mac IEではクリア。
Winでは2の動作のみ。1の動作が確認出来ず、ステータスバーにエラーについての記述があります。

なお、エラーは
frames[...].document.images[...]オブジェクトではありません
というものです。

このエラーのあるフレームのタグは

<Script Language="JavaScript">
<!--

// 変える画像のあるフレーム名を記載
var fraName="top";
//

if (document.images) {

    // 変化する画像ファイル名一覧
    var imRi13=new Array();
    imRi13[0]=new Image(),imRi13[0].src="_images/mini_00_mono.jpg";
    imRi13[1]=new Image(),imRi13[1].src="_images/mini_00_color.jpg";
    imRi13[2]=new Image(),imRi13[2].src="_images/mini_01_mono.jpg";
(    .......画像分続くので割愛)
    //
}

// 画像を変化させる部分
function gaChaRi13(name,num) {
    if (document.images) frames[fraName].document.images[name].src=imRi13[num].src;
}
// End -->
</Script>

なお、テストとしてこちらに3フレームも掲載しております。
http://www.geocities.co.jp/Foodpia-Olive/2125/01/index.htm
上記の説明で不足があればこちらを参照して下さい。
(各フレームに広告が入っているので見づらくて申訳ございません)

どうぞよろしくお願い致します。


1:[回答] ween [2003/03/16 16:28 ]

WinIE6 で同様の挙動を確認できました。
window==frames という式を試してみると何と true が返ってくるようなので
fraName="top"; のときに frames[fraName] が window.top を参照してしまい
frames[fraName].document.images[name] が期待する画像を参照できていないのだと思います。
window のプロパティとかぶらなそうな名前にフレーム名を変更するとか
fraName=1; のように数字でフレームを指定するとかしてみてはどうでしょうか。

他のブラウザとの互換性を無視できる状況ならば
frames[fraName] を frames(fraName) にすることでも動作させられるようです。


2:[完了] さちこ [MAIL] [2003/03/16 18:10 ]

weenさま、はじめまして。
早急なご回答どうもありがとうございます。

さっそく、フレーム名を変えて対応したところ、
問題は無事に解決致しました。

かなり、目から鱗!心から嬉しいです。

ご回答頂いたweenさまをはじめ、HP管理人さまにも感謝致します。

本当にどうもありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World