こんにちわ。

今、フレームを用いてホームページを作成しています。
そのなかでJavascriptを用いて複数のフレームを同時に変更しようとしているのですが、
上手く出来ません。Javascriptの参考書等を見るとフォームボタンをクリックした時に
複数のページを変更する方法はよく載っているのですが、gifの画像をクリックした時に
複数のページを同時に変更したいのです。
ご存知の方がいらっしゃいましたらご返答をお願いします。

ちなみに、参考書等に載っていたフォームボタンをクリックする場合の方法を書いておきます。
フレーム名はf1,f2,f3としていて、f1内のフォームボタンをクリックするとf2,f3が変更される
ものが載っていたのでその中のf1を書いておきました。
よろしくお願いします。

<HTML>
<HEAD>
<TITLE>F1.HTM</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function ChangFram(P1,P2){
parent.f2.location.href=P1
parent.f3.location.href=P2
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="CHANG">
<INPUT TYPE="button" NAME= "chang1" VALUE=" Change!! " onClick="ChangFram('FP2.HTM','FP3.HTM')">
<P>
<INPUT TYPE="button" NAME= "chang2" VALUE=" 元に戻す " onClick="ChangFram('F2.HTM','FP1.HTM')">
</FORM>
</BODY>
</HTML>

このQ&Aに関連する最新のQ&A

A 回答 (3件)

<img>タグや<a>タグで「onClick」を使用するのではなく、



<a href="javascript:ChangFram('FP2.HTM','FP3.HTM')"><img src="1.gif"></a>
<p>
<a href="javascript:ChangFram('F2.HTM','FP1.HTM')"><img src="2.gif"></a>

とすれば良いと思いますよ。
    • good
    • 0
この回答へのお礼

出来ました。

NO.2の方法でもNO.3の方法でも出来ました。
というより、両方とも試していたのですが出来なかったのです。

原因は違う個所だったようです。FRAMEのNAME内に-(ハイフン)を使用していたのですが、それを外したら出来るようになりました。
NAMEに使える文字にも制限があるのですね。

お答え下さった方、有難うございました&すみませんでした。

お礼日時:2002/01/18 14:57

古いブラウザ(NN4.x とか、IE4 とか)だと、<img> に onClick ハンドラがありません。



リンクにすればいけます。

<a href="#" onClick="ChangFram('FP2.HTM','FP3.HTM')"><img src=1.gif></a>
<p>
<a href="#" onClick="ChangFram('F2.HTM','FP1.HTM')"><img src=2.gif></a>

って感じ。リンクなので、フォームの中に書く必要はありません。

この回答への補足

ブラウザはNNもIEも新しいVersionを使用しています。

補足日時:2002/01/18 14:44
    • good
    • 0

 先ほど少しだけ試してみたのですが、画像、つまり<img>タグに対してもonClickのイベントはかけるはずですし、きちんと実行するはずですよね。


 ですのでボタンをクリックするのと何ら変わりは内科と思います。

 指定するフレームの名前は間違いありませんか?
 変更先のURLも間違いはありませんか?

 さらに、私が昔悩んだことがあるのは、<script>タグを書く位置です。
 常に<head>~</head>に書かなければいけないわけではないので、実行順とかをよく考えてやってみてはどうでしょうか?
 
 参考になるかどうかはわかりませんが、がんばってみてください。
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Q

<input type="hidden" name = "hoge">があったとします。
これを、javascriptを使用し nameで検索します。
”hoge”を検索後、その”hoge”という名前を変更する方法を探しています。 

<input type="hidden" name = "hoge">
       ↓↓↓↓↓
<input type="hidden" name = "fuga"> 

リフレッシュ無しで、上記のようにnameを変える方法が知りたいです。

ご存知の方おりましたら、お手数ですが教えていただけませんでしょうか。
宜しくお願いいたします。

Aベストアンサー

タグが特定出来れば、setAttribute等で属性値を変更出来ます。
setAttribute("name","fuga")

Qで、Q1に後で値を設定して表示するには

お世話になります。
<input type="text" name="Q1">で、Q1に後で値を設定して表示するにはどうしたら良いものでしょうか。
name="Q1"
と、しているので、
onMousedown="function()"
で、nameでしてしたエリアに値を書き込めば、できると思うのですが、
このfunction()をどのように書いたらよいものか、いろいろ調べてもわかりません。
何とかご教示願えないでしょうか。
よろしくお願いします。

Aベストアンサー

javascriptを利用することで出来ます。
こんな感じで動くでしょう。
ちなみにテキストボックスなどをjavascriptで操作する場合は
idをつけておくと便利です。

これ以上をやりたいというのであれば
参考URLなど見て勉強してみてください
<html>
<head>

</head>
<body>

<input type="text" id="Q1" name="Q1" onmousedown="hoge()">
</body>
<script type='text/javascript'>
function hoge()
{
Q1.value = ""; //""のなかに設定する値
}
</script>

参考URL:http://www.parkcity.ne.jp/~chaichan/src/javasc21.htm

Qでボタンを押したときの処理

ボタンをクリックしたらalertによって下記のような文字列、trueかfalseを返すようにしたいのです。

fulction hantei(){

if(str.length > 6){
document.write("true")
}
else{
document.write("false")
}
}

あと、functionにはdocument.writeが使えないようなのですが、そうならばどのようにして表示させるのでしょう?

よろしくお願いします。

Aベストアンサー

"alertによって"の表現が、どうにでもとれます。
「警告ダイアログを表示させたい」という意味であれば、#1の方の説明の通りです。
画面上のどこか文字列を変更したいならば、document.all(ID) と innerHTMLを利用できます。ただしNetscapeでは、4.x系も、7.x系も効きません。Opera、Firefoxを有効なようですね。

以下にサンプル

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>てすと</title>
<script type="text/javascript">
<!--
function func(message)
{
 var targetItem = document.all("alertTarget");
 targetItem.innerHTML = message;
}
// -->
</script>
</head>
<body>
<form target=".">
<span id="alertTarget"></span><br>
<input type="button" value="alert A" onclick="func('aaaa')">
<input type="button" value="alert B" onclick="func('bbbb')">
</form>
</body>
</html>

"alertによって"の表現が、どうにでもとれます。
「警告ダイアログを表示させたい」という意味であれば、#1の方の説明の通りです。
画面上のどこか文字列を変更したいならば、document.all(ID) と innerHTMLを利用できます。ただしNetscapeでは、4.x系も、7.x系も効きません。Opera、Firefoxを有効なようですね。

以下にサンプル

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<me...続きを読む

Q

数十の<a>タグがあるHTMLファイルの中で、
<div id="blank">で囲まれた<a>タグ群のみをすべてtarget="_blank"にしたいと考えています。
該当する<a>タグすべてにtarget="_blank"を書くと、HTMLファイルの容量が大きくなるので、CSSのIDとJavaScriptを組み合わせて、実現できないものでしょうか。

Aベストアンサー

<base target="_blank">
<div id="blank">
 <!-- -->
</div>
<base target="_self">

Q

▼次のようにページ内のdivタグのidの名前によって、formタグ内の要素をdisableにすることはJava scriptによって可能でしょうか?

<div id="AA">のとき、別の場所にある<form id="BB">内のselect要素などすべての要素をdisableにする。

また同時に、id="BB"に指定したスタイルシートの記述を書き換えることは可能でしょうか?

何かよい方法をご存知でしたら教えてください。よろしくお願いいたします。

Aベストアンサー

>なぜか時々エラーが出ます。
ウチでちょっと試した程度ではエラーが発生しませんでした。
できましたら、発生したときのメッセージや場所また、ブラウザの種類なども教えてください。

以下は、予防的な意味での注意点についてちょっと書きます。
>return false;

は、必要ないです。
書かない方がいいと思います。
==nullの場合の処理が必要ないなら
!=nullにすればよいです。
もしくは
return false;でなくて
;
のように空文でもよいです。
あと、idに使っている名前と同じ名前を変数名として使わない方が良いです。
つまり、
id="soldout"の時に
var soldout;という風にはしない方が良いです。
同じでなければ、cartFormでもなんでもかまいません。
あと、scriptは、
<!--
(スクリプトの中身)
//-->
のように
<!--
//-->
で囲むようにします。

getElementById
は、ブラウザやのブラウザのバージョンによっては使えないことがあります。
その場合は、使えるかどうかを調べる必要があります。

<script type="text/javascript">
<!--
function stockStatus (num){
var f=document.getElementById("soldout");

if(f!=null){
for (var i =0; i<=f.length -1 ;i++){
f.elements[i].disabled=num;
}
}
}
//-->
</script>

>なぜか時々エラーが出ます。
ウチでちょっと試した程度ではエラーが発生しませんでした。
できましたら、発生したときのメッセージや場所また、ブラウザの種類なども教えてください。

以下は、予防的な意味での注意点についてちょっと書きます。
>return false;

は、必要ないです。
書かない方がいいと思います。
==nullの場合の処理が必要ないなら
!=nullにすればよいです。
もしくは
return false;でなくて
;
のように空文でもよいです。
あと、idに使っている名前と同じ名前を変数名として...続きを読む


人気Q&Aランキング

おすすめ情報