以前に教わった方法で、submit() を使って別ウィンドウに結果を表示させる Javascript を書きました。
IE では、できたのですが、NN(Netscape Communicator 4.7) では以下の
Javascript が起動しません。
というか、最後の form3.submit() のみ起動します。submit() の間に
alert(); を入れておくと 3 つのウィンドウが開くので、動くことは
動いているようなのですが...。なぜでしょう?

--------ここから(ソースの一部) ----------
<SCRIPT LANGUAGE="JavaScript">
<!--
function OpenWin(){
document.form1.submit();
document.form2.submit();
document.form3.submit();
}


// -->
</SCRIPT>
<form name="PapyrusForm" method="POST" action="">
<input type="text" name="searchword" size="60" maxlength="256"><BR>
<input type="button" name="Search" value=" 検索 " onClick="OpenWin()">
</FORM>

<!-- =========================================== -->
<FORM ACTION="/cgi-bin/searchlist1.pl" target="window1" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" NAME="form1">
</FORM>
<FORM ACTION="/cgi-bin/searchlist2.pl" target="window2" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" NAME="form2">
</FORM>
<FORM ACTION="/cgi-bin/searchlist3.pl" target="window3" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" NAME="form3">
</FORM>

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

A 回答 (1件)

試したところ、確かにうまく動作しませんでした。


(私の場合、1個もウィンドウが開きませんでした。)

submit 時に、同時に新規ウィンドウを開かなければならないのが悪いのかと思い、submit前に3つのウィンドウを open したら動きました。
根本の問題が分かっていないので、自身なしです。

function OpenWin(){
  // あらかじめ、3つの targetウィンドウを開いておく
  open("about:blank","window1");
  open("about:blank","window2");
  open("about:blank","window3");

  // その後、それぞれの targetウィンドウに submit する。
  document.form1.submit();
  document.form2.submit();
  document.form3.submit();
}
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。
上記の方法で間違いないです。
質問したあとに、すぐに気づいてやってみました(^^;)。
(回答者がないと締め切れないのですね、ここの質問って。)

お礼日時:2002/03/22 13:35

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

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

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タグのtargetに値を書込む方法を教えて下さい

送信ボタンを押すとtargetの値をとれず、javascriptエラーになります。
「引数は無効です」と表示されます。
SUBMITした時にmake_newwin(f)を動作しようとしているのですが、
うまくtargetが取れません。
targetには、親ウィンドウ名を書き込みたいのです。
何か良い方法ありましたら、教えて下さい。

<script language="javascript" type="text/javascript">
<!--

function make_newwin(f) {

alert(f) …ここで内容を表示したところ[object]と表示されました。

  var w = window.open('about:blank', f.target);
   w.focus();
window.close();
}


<FORM name="test" action="/cgi-bin/test.cgi" method="post" target="" onSubmit="make_newwin(this);">

<input name = "aaa" type = "hidden" value ="10000" >
       :
</FORM>

</BODY>
<script>
document.test.target=opener.window.top.name;
</script>
</HTML>

送信ボタンを押すとtargetの値をとれず、javascriptエラーになります。
「引数は無効です」と表示されます。
SUBMITした時にmake_newwin(f)を動作しようとしているのですが、
うまくtargetが取れません。
targetには、親ウィンドウ名を書き込みたいのです。
何か良い方法ありましたら、教えて下さい。

<script language="javascript" type="text/javascript">
<!--

function make_newwin(f) {

alert(f) …ここで内容を表示したところ[object]と表示されました。

  var w = window.open('about:b...続きを読む

Aベストアンサー

> ■親ウィンドウのHTMLで、target="ko"と限定して
> ありますよね。もし、親ウィンドウも2つ表示されて
> いて、子ウィンドウも2つ表示されている場合、
> それぞれの処理をさせるためには、どうしたら
> 良いでしょうか?今の状態ですと、子ウィンドウ
> が、上書きされてしまいます。

そのような場合、それぞれの親が自分の子に、他の子とは違う名前を付けなければなりません。となると HTML では対処できないので、JavaScript で設定するようにします。

また、No.3 のサンプルでは親の名前も固定なので、このままでは子から親への送信にも問題があるかも知れません。ですから、親の名前もウィンドウごとにユニーク(一意的)な名前になるようにした方が良さそうです。

ユニークな名前を作るには、ミリ秒単位で値が変わる Date オブジェクトを利用するとよいでしょう。Date オブジェクトの getTime メソッドは、1970年1月1日0時0分0秒からの経過時間(ミリ秒)を返します。

以上を踏まえ、No.3 の親ウィンドウのサンプルを書き換えてみます。

■親ウィンドウのHTML(その2)
<html>
<head>
<title>親</title>
<script type="text/javascript">
<!--
// 自分に名前を付ける
window.name = (new Date()).getTime();   ★変更:親の名前設定

// FORM送信で開くウィンドウのスタイルを指定するための関数
function make_newwin(f) {
  f.target = window.name + "_ko";   ★追加:子の名前設定※
  var w = window.open("about:blank", f.target, "スタイル設定");
  w.focus();
}
//-->
</script>
</head>
<body>
<form action="/cgi-bin/test-check.cgi" method="post" onSubmit="make_newwin(this)">   ★削除:target="ko" は不要
<input type="submit">
</form>
</body>
</html>

※親の名前がユニークなので、「親の名前+"_ko"」とするだけで子もユニークになります。
 子の名前も親と同じように Date オブジェクトで設定してもよかったのですが、こちらの方が簡単かつ安全なのでこのようにしました。

> ■親ウィンドウのHTMLで、target="ko"と限定して
> ありますよね。もし、親ウィンドウも2つ表示されて
> いて、子ウィンドウも2つ表示されている場合、
> それぞれの処理をさせるためには、どうしたら
> 良いでしょうか?今の状態ですと、子ウィンドウ
> が、上書きされてしまいます。

そのような場合、それぞれの親が自分の子に、他の子とは違う名前を付けなければなりません。となると HTML では対処できないので、JavaScript で設定するようにします。

また、No.3 のサンプルでは親の名前も固定...続きを読む

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")

Aベストアンサー

どうもです(^^;;
FORMに入れた場合は例えば
document.forms[0].CheckBox[0]
のように書かないとダメなんです。
で、以下のように変更します(^^;

<script language="javascript">
function change(tr,cb) {
tr.bgColor=cb.checked?"#ff0000":"#ffffff";
}
</script>
~略~
<INPUT TYPE="CHECKBOX" NAME="CheckBox" VALUE="CheckBox" onclick="change(tr1,this)">
~略~

とりあえず<(__)>


人気Q&Aランキング

おすすめ情報