他フレームのフォームをサブミットするには?
[上に]
[前に]
[次に]
にしえもん
1999/03/19(金) 15:49:42
フレームAとBがあって、Aにあるフォームの内容をBにあるボタンで送信するにはどのようなHTML+JavaScriptを書けばいいのですか?
ふじ
1999/03/19(金) 20:10:51
Bの方に
<input type=button onClick="parent.A.form.submit();">
Aはフレームの名前、formはフォームの名前。
コルン
[E-Mail]
[HomePage]
1999/03/20(土) 04:12:02
オイラも似たような所で引っかかっています。
ソースの概要は以下ですが、何故かエラーが出てしまいます。(ちなみに動作環境はネスケ4.5)
<html><head><title>タイトル</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
function func(){
parent.frame2.forms[0].submit();
}
// -->
</SCRIPT></head>
<body><form name="colun">
<input type=button value="サブミット" onclick="func()">
</form></body></html>
ちなみに、forms[0]をそのフォームの名前にする事は出来ません。
・・・随時変化しますので。
これは、どういうエラーなのでしょうか?
JavaScript error: Type 'javascript:' into Location for details.
とエラーが出て、和訳すると、
JavaScriptエラー:
'javascriptをタイプしなさい:細部のための位置に。
の様なのですが...
でも、
parent.frame2.forms[0].submit();
を、他の命令・・・たとえば
document.write("成功!");
とかにすると、ちゃんと動きます。
試しに、forms[0]を、その時のフォーム名に変えてやってみましたが、それでもダメでした。
・・・つづりの間違いも、さんざん探しましたし、プログラム歴長いので、たぶん間違っていないハズなのですが...
やはり、ネスケ特有のエラーなのかなぁ?・・・うちの端末は、IEが何故か動かないから、IEで試す事も出来ないのですが...
Tiot
1999/03/20(土) 04:21:52
直接関係はないんですが
> JavaScript error: Type 'javascript:' into Location for details.
というメッセージが出た場合は、普段URLを打ち込むところに
javascript:
と、入力してエンターで、詳しいエラーメッセージがコンソールに得られます。
詳細は、ロケーションバーに「javascript:」と入力して確認してください、ですね。
コルン
1999/03/20(土) 04:27:02
Tiotさん、ありがとう御座います。
詳しいエラー表示が出るのなら、デバッグもやりやすいです。
・・・たぶん、後は自分で解決出来ます。
コルン
1999/03/20(土) 04:38:09
重大な事が解りました。
・・・submitが在る方のHTML文章が、<HTML>無しに、いきなり<HEAD>で始まっているです。
・・・どうしようも無いでは無いか...
こりゃぁ、諦めるしか無いかなっ?・・・それとも、昔のブラウザを引っ張り出してくるか...?
・・・IEだと、動くかもっ?
ふじ
1999/03/20(土) 14:29:03
>・・・submitが在る方のHTML文章が、<HTML>無しに、いきなり<HEAD>で始まっているです。
Navigator も IEも、お構いなしに動くと思いますが・・・
#HTMLの文法的には省略可能なタグでもあるし。
ちなみに、どんなエラー(詳細なメッセージの方)がでます?>コルンさん
とこやん
1999/03/20(土) 15:56:43
このエラーを見たことが無いので、役に立つか分かりませんが、、、。
私も別フレームのフォームをどうこうするってプログラムは結構使用してます。
その際上記の関数(func)に相当するものはすべてフレームセットを指定するページ
(トップページと言うんですか?)に入れてます。
フレームは、読込む順番だの何だので、別フレームにある関数とかは知らないよ!
って言われちゃう時がありますよね。
だからフレームをまたぐ処理を行う関数は、面倒くさいのでトップに入れちゃうんです。
でもやっぱりあんまり本質的な回答ではなかったかも、、、。
コルン
[E-Mail]
[HomePage]
1999/03/21(日) 01:42:47
シクシクシクシク。
・・・何がいけないんだぁ〜。(涙)
>ちなみに、どんなエラー(詳細なメッセージの方)がでます?
parent.frame2.forms has no properties.
というエラーです。
とこやんさんの言うとおり、別フレームのフォームを認識しないのかなっ?
一応、とこやんさんの言う様に、フレームにJavaScriptをほどこしてみましたが、これまたダメでした。
・・・長年プログラムをやってきて、「どこにエラーが在るか解らない」というのは沢山在りましたが...(ちゃんとすべて解決しています)
こんな単純なハズのプログラムでエラーが発生し、原因が解らないのは、初めてです。
そういえば、前にも、こういう事が在ったよなぁ。・・・あの時は、コンパイラ自体が壊れていた・・・というか、OSの環境変数がおかしくて、コンパイルが出来なかったというか...
とうとうオイラも妬きがまわったか。
・・・小説家に転職しましょっか。(核爆)
とこやん
1999/03/21(日) 17:20:42
えぇ〜!!
やっぱ、だめっすかぁ?
ぢゃあさ、 parent.frame2.document.forms[0].submit()とかゆうふうに
「document」を入れてみてもだめ?
でもほんっとに、JavaScriptのエラーメッセージって、
涙が出ちゃうほど貧弱だよね!
no propertiesで何を知れっつーのよぉ!って思うよね。
頑張れ。コルンさん!
たこすけ
1999/03/23(火) 11:34:15
>parent.frame2.forms has no properties.
から”formsはparent.frame2のプロパティではない。”と考えて
parent.frameはwindowオブジェクト、formsはformオブジェクト、
formオブジェクトはdocumentオブジェクトのプロパティなので
現在の「windowオブジェクト.documentオブジェクトのプロパティ」の書式は間違い。
ならば「windowオブジェクト.windowオブジェクトのプロパティ」とすれば良いので
「windowオブジェクトのプロパティ=document、history、locationのいずれかのオブジェクト」から
>ぢゃあさ、 parent.frame2.document.forms[0].submit()とかゆうふうに
>「document」を入れてみてもだめ?
おそらくこれが正解。
#でも自信無し。大嘘かも。求むフォロー
#とほほのJavaScript入門を読みなおしてみようっと
たこすけ
1999/03/24(水) 10:03:00
やっぱり間違ってた。
>parent.frameはwindowオブジェクト
ではなくwindowオブジェクトのプロパティ(frameオブジェクト)でした。
しかし、formオブジェクトの上位はdocumentオブジェクトなので
>parent.frame2.document.forms[0].submit()
やっぱりこれが正解だと思う。
#なんか一人で空回りしとる・・・・
#誰かフォローしてーーー
Tmb
1999/03/24(水) 10:29:32
たこすけさんので合ってると思います。
例えばNN3では
parent.frame2.forms[0].reset()
では has no propertiesでエラー
parent.frame2.document.forms[0].reset()
でフォームのリセットが出来ました。
#単にsubmitより視認しやすかったんでresetにしましたけど。
たこすけ
1999/03/24(水) 20:29:12
Tmbさん、フォローありがとうございます。(本当にいつもいつも)
違うサイトでリファレンスをみたら
frameオブジェクトの下位にwindowオブジェクトと書いてあって
何を信じてよいのやらサッパリわからん状態でした。
>たこすけさんので合ってると思います。
「答えはわかったけど式がわからない」という感じです。
答えを出したのはとこやんさんなので、私はなにもしてませんね・・・トホホ。
#にしえもんさんやコルンさんは解決したのかなぁ?
コルン
[E-Mail]
[HomePage]
1999/03/27(土) 07:41:30
どうやら、たこすけさんも、とこやんさんも、Tmbさんも、全員正解の様です。ありがとうございました。
・・・しかし。
access disallowed from scripts at file:/B|/Homepage/colun/dmy/menu.html to documents at another domain.
とエラーが出てしまった。どうやら、他のサイトのフォームを、JavaScriptで弄くっては成らないとか...?
試しに、某無料サービスに、転送して、やってみたが、やはり無理だった。同じエラーが出てしまう。
たぶん、以前試した時は、どのエラーでも「JavaScript error: Type 'javascript:' into Location for details.」だったので、その前のエラーとの区別が付かなかったんですね。・・・きっと。
この場合、セキュリティをかいくぐるしか無いのかなぁ?
・・・ん、もしかしたら、ネットスケープの設定で、どうにか成るかも知れない...やってみます。
[上に]
[前に]
[次に]