-PR-
解決済み

Netscape6でフレーム間での画像の変更

  • すぐに回答を!
  • 質問No.52801
  • 閲覧数42
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 100% (2/2)

あるページから別フレームの画像を切り替えるスクリプトを作成していて困っています

フレーム1側ソース
...
function _sendData(num){
 window.top.frames[1]._imgChange(n);
}
...
<body onLoad="_sendData(n)">
...

フレーム2側ソース
...
for (i=0;i<2;i++){img[i]=new Image();}
img[0].src = "images/abc.jpg";
img[1].src = "images/def.jpg";
function _imgChange(num) {
 nam = "imgname";
 document.images[nam].src = img[num].src;
}
...
<img src="xyz.jpg" name="imgname">
...

上記ソースのように作成しましたが
IE5.5とネスケ4.75で正常に動作するのですが、Netscape6だけうまく動作しません
解決方法その他アドバイスお願いします
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル5

ベストアンサー率 100% (2/2)

こんにちは。
実際のページを拝見しました。
HTMLをダウンロードして、(CGIは生成されたHTMLを利用するしか
ないですが)こちらのローカル環境でいろいろ試してみました。
pagename.htmのなかで、以下のようにスペーサの制御を
している部分がありますが、これをまるまる削除したところ、
当方の環境ではNetscape6でも想定どおりの動きをしました。

-------------------------------------------------------
<tr height="3" valign="top">
<td width="153" bgcolor="#FFFFAD"><img src="http://homepage2.nifty.com/cradoll/images/spacer.gif" width="150" height="3"></td>

<SCRIPT language="JavaScript"><!--
if(navigator.appName.charAt(0) == "N" && parseInt(navigator.appVersion) < 5){
document.write('<td width="523" bgcolor="#000000"><img src="http://homepage2.nifty.com/cradoll/images/spacer.gif" width="524" height="3"></td>');
}else{
document.write('<td width="526" bgcolor="#000000"><img src="http://homepage2.nifty.com/cradoll/images/spacer.gif" width="526" height="3"></td>');
}
//--></SCRIPT>
<td width="100%" bgcolor="#FFFFAD"><img src="http://homepage2.nifty.com/cradoll/images/spacer.gif" width="100%" height="3"></td>
</tr>
-------------------------------------------------------

Netscape6で問題のページを見ようとすると、ページのダウンロードが
いつまでたっても終了しない(Netscapeのロゴが止まらない)という
状態になるのが気になりました。以前仕事上で同様の現象を見たこと
がありますが、そのときには
 1.document.write()を極力使わない。
 2.METAで文字コードを指定する。
などとしたところ解決しました。ですが今回のケースはそれでも解決でき
ませんでした。
 当方の環境が実際の環境と全く同じというわけではないので(CGIなど)
これで本当に解決するかどうかちょっと判断がつきません。
 詳しい方がいらっしゃいましたら、フォローをお願いいたします。
お礼コメント
cradoll

お礼率 100% (2/2)

ありがとうございました
もともとはHTMLでのみ記述していたのですが
ページの更新作業や同内容のソースが多くなり
CGIで記述したものだったので面倒くさがりはだめですね

ブラウザによるスペーサの大きさを変える部分を
CGI側で行うようにすれば何とかなりそうです
投稿日時 - 2001-03-18 21:38:27
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル5

ベストアンサー率 100% (2/2)

こんにちは。
これで想定どおりなのか、いまいち自信がないのですが、
とりあえず以下のようにしてみたところ、正常に動くように
なりました。

フレーム1のソース-------------------------------
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
var m_num;
function _sendData(num){
m_num = num;
m_sendData();
}
function m_sendData(){
if(window.top.frames[1].ready == true){
window.top.frames[1]._imgChange(m_num);
} else {
setTimeout("m_sendData()", 100);
}
}
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="_sendData(1)">
</BODY>
</HTML>

フレーム2のソース-------------------------------
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
var ready;
var img;
ready = false;
img = new Array(2);
//for (i=0;i<2;i++){img[i]=new Image();}
//img[0].src = "images/1.jpg";
//img[1].src = "images/2.jpg";
img[0] = "images/1.jpg";
img[1] = "images/2.jpg";
function _imgChange(num){
nam = "imgname";
//document.images[nam].src = img[num].src;
document.images[nam].src = img[num];
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="ready = true">
<!--
 (*1)
-->
<IMG src="images/3.jpg" name="imgname">
</BODY>
</HTML>
-------------------------------------------------

どうやら、フレーム2のイメージ部分のタグがロードされる
前にフレーム1からそのイメージオブジェクトへアクセス
しようとしたため、正常に動作しなかったのだと思われます。
試しに(*1)部分に大量の文字列を挿入してみるとIEでも
正常に動作しなくなります。Netscape6 は動作が重いので、
よりロードに時間がかかり、バグが顕在化したのだと思います。

それにしても、これで回答になったのでしょうか。
もっとよいやり方を知っている方がいるような気もします。

それでは、失礼します。
お礼コメント
cradoll

お礼率 100% (2/2)

早速のありがとうございました
しかし原因がわからないですが、うまく動きません
フレームの入れ子をしているせいか、画像数が実際は15枚と多いせいか
ページの描画にCGIを利用している
などほかにも原因がありそうなんですが・・・

http://homepage2.nifty.com/cradoll/main.html
がそのページです
ページの内容は気にしないで下さい(笑
投稿日時 - 2001-03-18 14:50:16


このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ