ポイント時に別フレームの画像をきりかえる



0   名前: 時檻零咲 : 2007/01/12(金) 19:50  ID:iTdiasHC
【何をしたいのか】
タイトルのとおりなのですが、TagIndexで紹介されているポイント時に画像を切り替える、というあれを、別フレームの画像を切り替える、といったようにすることは可能でしょうか?

バナーを表示させるのに使いたいのですが、下に行くほど画像を表示する部分が隠れて見えづらい、或いはみえなくなってしまうので、別フレームに、と思っているのですが…


【現在の状況】
parent.フレーム名.document.
で、別フレームの操作が出来ると過去ログ等からみつけたのですが、これをソースのどこにいれればいいのかがわからなりません。
(ちなみに、使っているのはIE6です)

なにぶん初心者なので変数などはわからず、現在はタグやCSS、Java等はコピペしています。
ですので説明と、できればソースを記入していただけると幸いです



【何をしてみたのか】

<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT TYPE="text/javascript"> 
<!-- 

if (document.images) { 


// 設定開始(使用する画像を設定してください) 

// 通常の画像 
var img0 = new Image(); 
img0.src = "no-bana.jpg"; 

// ポイント時の画像1 
var img1 = new Image(); 
img1.src = "banner01.png"; 

// ポイント時の画像2 
var img2 = new Image(); 
img2.src = "bana.png"; 


// 設定終了 


} 

// ポイント時の処理 
function On(name) { 

if (document.images) { 
document.images['def'].src = eval(name + '.src'); 
} 

} 

// 放した時の処理 
function Off() { 

if (document.images) { 
document.images['def'].src = img0.src; 
} 

} 

// --> 
</SCRIPT>
</HEAD>
<BODY>

</BODY>
</HTML>

――――――――――――

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">
<TITLE></TITLE>
</HEAD>
<BODY>
<IFRAME SCROLLING="AUTO" HEIGHT="75%" WIDTH="100%" SRC="top.htm"name="top">
このページにはフレームが使用されています。
</IFRAME>
<IMG SRC="no-bana.jpg" ALT="START" WIDTH="200" HEIGHT="40" NAME="def">
</BODY>
</HTML>



↑が、リンクページのソースで、↓が画像(バナー)を表示させたい、infのページのソースです。
// 設定開始(使用する画像を設定してください)

// 通常の画像
var img0

っていうところに、parent.top.document.を書き込んでみたのですができず…orz

すみませんが誰かご教授お願いします。


1   名前: javajava : 2007/01/12(金) 19:50  ID:sqlJoewE
JavaのことはJavaで。
それと、evalはやめといたほうが吉。

2   名前: 時檻零咲 : 2007/01/12(金) 19:50  ID:iTdiasHC
 Javascriptにポイント時に画像を切り替える、というのがあったので、こちらに書き込んだのですが…これはJavascriptとは別のものなのでしょうか…初心者なので分からないのですがorz

 あ、あとevalって、なんでやめておいたほうがいいんでしょうか…?

 無知故、コピペをしただけなので中身をきちんと理解できていないところもあり、今後のためにもできればそういうところも教えていただきたいです。お願いします

3   名前: 匿名 : 2007/01/12(金) 19:50  ID:Rt.j/.AI
> Java等はコピペ
> これはJavascriptとは

Java と JavaScript は全く別の言語。この間違いには、みんなウンザリしてるんだ(話もこんがらがるしね)。

さて、あなたがやろうとしているのはどっち?

> あとevalって、なんでやめておいたほうがいいんでしょうか

場合にもよる。だけど、そもそも >>0 では使う意味がないから(無駄に処理が遅くなるだけ)。

> ソースのどこに

document → parent.frames['フレーム名'].document

> このページにはフレームが使用されています。

こんなメッセージを書くくらいなら、<a href="top.htm">トップ</a> とリンクを入れた方が親切設計。

4   名前: 時檻零咲 : 2007/01/12(金) 19:50  ID:iTdiasHC
>Java と JavaScript は全く別の言語。この間違いには、みんなウンザリしてるんだ(話もこんがらがるしね)。
>さて、あなたがやろうとしているのはどっち?

 あ、大変申し訳ありません。
 ただわたしは書いてあるとおり初心者で…JavaとJavaScriptの違いも良く分からず…

 ただ、JavaとJavaScriptどちらでもできるのでしたら、Javaは使ったことが無いのでJavaScriptでの方法を教えていただきたいです。

 それともJavaScriptではこれは不可能なのでしょうか…?

 evalは…

if (document.images) { 
document.images['def'].src = eval(name + '.src'); 
} 


 これを、

if (document.images) { 
document.images['def'].
} 


 こうすればいいのでしょうか…?質問ばかりで申し訳ないのですが(汗


>こんなメッセージを書くくらいなら〜

 確かに、不親切でしたね(汗
 Rt.j/.AI様、アドバイスありがとうございます。

5   名前: 匿名 : 2007/01/12(金) 19:50  ID:Rt.j/.AI
> それともJavaScriptではこれは不可能なのでしょうか…?

ヒント:

<SCRIPT TYPE="text/javascript">
                   ~~~~~~~~~~


いっそ、JavaScript ではなく ECMAScript という名で覚えた方が良いかもね。



> document.images['def'].src = eval(name + '.src');

document.images['def'].src = name + '.src';


だから「使う意味がない」と言ったわけさ。



あとは、

・window は現在のウィンドウ(フレーム)を表す
・window.document は現在のウィンドウ(フレーム)のページを表す
・window.parent.frames['名前'] は同階層のウィンドウ(フレーム)を表す
・window.parent.frames['名前'].document は同階層のウィンドウ(フレーム)のページを表す

・頭の window. は省略して良い

を覚えておけば大丈夫かな。

6   名前: 時檻零咲 : 2007/01/12(金) 19:50  ID:iTdiasHC
お返事遅れて申し訳ありません(汗

INFは外側のページに名前をつけれないので、通常のフレーム限定なのかな…?
レイアウトを変えて、お教えいただいた5項目を踏まえながらがんばってみようとおもいます。

evalは納得です。コレは確かに不必要…(苦笑
evalが何かを理解できないで使っていたので…勉強不足が現れてる…。

ご指摘、ご指南ありがとうございました。それではっ

一覧へ戻る