- - PR -
JavaScript(Ajax)で悩んでいます
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-11-17 19:56
JavaScript(Ajax)で悩んでいます。
document.getElementById("test").innerHTMLを利用して、a.html内にb.htmlを展開しており、呼び出されたb.htmlからwindow.openでc.htmlを開いています。 この状態で、c.htmlで選択した項目を、b.html内のフォームに表示したいのですが、IEでは動作するのに、ForefoxやOperaでは「no properties」と表示され動作しません。 c.htmlからは window.opener.document.form.data.value=setdata; と言うように、c.htmlからb.htmlにデータを渡しているのですが、 IEではb.htmlをopenerと判断しているのに対し、Firefoxではa.htmlをopenerと判断しているようです。 検証として、試しにb.html内に置いているフォームをa.htmlに置いたところ、Firefox等でも正常にデータがフォーム内に表示されました。 ForefoxやOperaでもb.html内のフォームにデータを渡すには、どのようにすれば良いでしょうか? 初歩的な質問かもしれませんが、宜しくご教授下さい。 | ||||||||
|
投稿日時: 2006-11-17 20:56
innerHTMLが使えるのはIEだけじゃね?(W3C DOM APIには無かったはず)
以前、Firefox(ver 1.5)で使えるか試したけど、確か使えなかった。 使い方が悪かっただけかもしれんが。 | ||||||||
|
投稿日時: 2006-11-17 21:10
お返事ありがとうございます。
innerHTMLは使用出来ているようで、Firefoxでもa.html内にb.htmlが読み込まれています。 | ||||||||
|
投稿日時: 2006-11-17 23:03
よく分からんのですが。innerHTMLで入れるのなら、ブラウザ的にはb.htmlなんてものは存在しませんよ。
その上で、予想ですが。 formという名前のオブジェクトが2つありませんか。 a.htmlとb.htmlのどちらにもあるとか。 IEだとたまに、複数あっても1つ目のを使ってくれちゃうことがあります。 | ||||||||
|
投稿日時: 2006-11-18 16:17
多分、それinnerTextと勘違いでは・・・ | ||||||||
|
投稿日時: 2006-11-18 16:22
展開といっても意味がたくさんありますので、 具体的に何に対して何をどうしたのか、明記してください。 ちなみに、DOM操作はAjaxとは関係ありません。 Ajaxは通信の部分を示す言葉です。 | ||||||||
|
投稿日時: 2006-11-20 09:34
そーかもしれない。 ごみレス、スマン。 | ||||||||
|
投稿日時: 2006-11-20 09:43
勘で答えますが、
b.htmlというのが、フルのhtmlドキュメント(htmlタグから始まって、titleもbodyもついているようなドキュメント)だったりしませんか? (あー。ひょっとしたら、mioさんの書かれているように、formの中にformを入れているような状態なのかも?) (要するに、全体としてhtmlとして正しく無いと、解釈がブラウザによって違ったりうまく行かなかったりする訳です。) |