- PR -

JavaScript(Ajax)で悩んでいます

投稿者投稿内容
Rimm
会議室デビュー日: 2006/11/17
投稿数: 4
投稿日時: 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>タグは入っていません。
87
会議室デビュー日: 2005/06/17
投稿数: 13
投稿日時: 2006-11-20 14:41
はじめまして。

私も、皆さんがおっしゃってるように、HTMLが文法的におかしいのが原因だと思います。
<form>タグが2つあるのではないか等は例として挙げられているだけと思います。

a.htmlにb.htmlをinnerHTMLした後のHTMLを出力してみたら如何でしょうか。
document.getElementById("BODYタグのIDやFORMタグのID").innerHTML
とすればHTMLが参照できると思います。
Rimm
会議室デビュー日: 2006/11/17
投稿数: 4
投稿日時: 2006-11-21 17:00
引用:

私も、皆さんがおっしゃってるように、HTMLが文法的におかしいのが原因だと思います。
<form>タグが2つあるのではないか等は例として挙げられているだけと思います。



お返事ありがとうございます。
皆さんのご指摘を受けてHTMLを少しづつ変えてチェックしてみたのですが、原因が特定出来ませんでしたので、思い切って1から作り直してみようと思います。
皆さんのアドバイスを参考に、HTMLの文法に気を使って丁寧に組み上げてみます。
本当にありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)