- - PR -
window.openerについて教えてください。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-10-07 20:39
window.openerを使用して、親画面のラベルに値を入れようとしてもうまくいってくれません。
例えば: [子画面] 〜省略〜 opener[0].$("XXXX").value = "値"; 〜省略〜 [親画面] 〜省略〜 <s:label name="conditionForm.xxxxx" id="XXXX" cssClass="zzzz" /> 〜省略〜 上記の様な記述で行っているのですが、うまく値("値")が入ってくれません。 <s:label>では無<s:textfield>だとうまく値が入ってくれます。 フレームワークは「Struts2」を使用しています。 タグの「s:」は<%@ taglib uri="/struts-tags" prefix="s" %>このようにしています。 うまくいく方法をご存知の方がいらっしゃいましたら、どうかご教授ください。 よろしくお願いします。 |
|
投稿日時: 2008-10-07 23:54
うまくいくときと、うまくいかない場合では、
生成されたHTMLにどんな違いがあるでしょうか? また、「うまく値が入らない」というのは具体的に何が起こっているのでしょう? 意図した値が設定されていないのですか? 何も起こらないように見えるのでしょうか? エラーが表示されているのでしょうか? JavaScriptは<s:xxx>のようなタグライブラリではなく、 生成されたHTMLに対して実行されます。その辺は意識されてますか? 質問の内容からすると、親画面やwindow.openerに関係なく、 正しく動作していないように思えますが、 window.openerを利用したときだけうまくいかないのですか? |
|
投稿日時: 2008-10-08 01:02
ちょっと勉強すれば分かるのに。
ラベルは innerHTML か innerText です。 IE ならどっちでも。 opener[0] ってのは不可解。opener[0].$("xxxx") がうまく動作するとは思えない。 <s:label> が値の永続化が可能はやつならば、もしかしたら、ラベル(span or div) の横にhidden 要素があるかもしれません。この場合は両方更新してあげないと サーバーまで値が渡りません。 ま、どっちにしても、ブラウザを右クリックしてタグライブラリが展開された状態 のHTMLを精査することから始めた方がいいですね。<s:label> がどんなタグに展開 されるのかでアクセス方法が変わってきます。 } |
|
投稿日時: 2008-10-08 14:33
ぴあちゃん様、
かつのり様、 いつも有難うございます。 頂いたご意見を参考にして、もう少しチャレンジしてみます。 また、なにか進展がありませたら追記させていただきますので よろしくお願いいたします。 |
1