- - PR -
JavaScript(Ajax)で悩んでいます
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-20 10:27
皆様、ご返答ありがとうございました。
掲示板を閲覧できる環境にありませんでしたので、返信遅くなりました事をお詫び申し上げます。 >formという名前のオブジェクトが2つありませんか。 >a.htmlとb.htmlのどちらにもあるとか。 確かめてみました。 formと言う名前は、a.htmlの1箇所にのみしかありませんでした。 >展開といっても意味がたくさんありますので、 >具体的に何に対して何をどうしたのか、明記してください。 a.html内のボタン(X)を押すと、 document.getElementById("result").innerHTML = httpObj.responseText; を用いて、a.html内の<div id="result"></div>に、b.htmlを表示します。 表示されたb.html内にもボタンがあり、このボタン(Y)を押すと、c.htmlがwindow.open('c.html');の形で、別窓で開きます。 別窓で開いたc.html内では、アンケートのようなものを行っています。 c.html内の決定ボタン(Z)を押すと、そのアンケート回答をb.html内にある回答表示場所<input name="ans">に表示したい欲しいのですが、IEではb.htmlに回答が表示されるにも関わらず、FirefoxやOperaでは回答が表示されません。 <input name="ans">にデータを渡すやり方としては、 window.opener.document.form.ans.value=data; と言うやり方を利用しています。 試しに<div id="ans"></div>をa.html内に移動させたところ、Firefoxでも回答がわたってきたので、window.openerの解釈がIEではb.html、Firefoxではa.htmlになっているのではないかな、と予想しているのですが、何とかFirefoxでもb.html内に回答を表示する事は出来ないでしょうか? >b.htmlというのが、フルのhtmlドキュメント(htmlタグから始まって、titleもbodyもついているようなドキュメント)だったりしませんか? 確かめてみました。 大丈夫でした。b.html内にはレイアウト用のテーブルと、回答表示用の<input name="ans">などしかありません。 b.html内に<form>タグは入っていません。 | ||||
|
投稿日時: 2006-11-20 14:41
はじめまして。
私も、皆さんがおっしゃってるように、HTMLが文法的におかしいのが原因だと思います。 <form>タグが2つあるのではないか等は例として挙げられているだけと思います。 a.htmlにb.htmlをinnerHTMLした後のHTMLを出力してみたら如何でしょうか。 document.getElementById("BODYタグのIDやFORMタグのID").innerHTML とすればHTMLが参照できると思います。 | ||||
|
投稿日時: 2006-11-21 17:00
お返事ありがとうございます。 皆さんのご指摘を受けてHTMLを少しづつ変えてチェックしてみたのですが、原因が特定出来ませんでしたので、思い切って1から作り直してみようと思います。 皆さんのアドバイスを参考に、HTMLの文法に気を使って丁寧に組み上げてみます。 本当にありがとうございました。 |