- PR -

window.openerについて教えてください。

1
投稿者投稿内容
キリギリス
常連さん
会議室デビュー日: 2004/08/26
投稿数: 33
投稿日時: 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" %>このようにしています。

うまくいく方法をご存知の方がいらっしゃいましたら、どうかご教授ください。
よろしくお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-10-07 23:54
うまくいくときと、うまくいかない場合では、
生成されたHTMLにどんな違いがあるでしょうか?
また、「うまく値が入らない」というのは具体的に何が起こっているのでしょう?
意図した値が設定されていないのですか?
何も起こらないように見えるのでしょうか?
エラーが表示されているのでしょうか?

JavaScriptは<s:xxx>のようなタグライブラリではなく、
生成されたHTMLに対して実行されます。その辺は意識されてますか?

質問の内容からすると、親画面やwindow.openerに関係なく、
正しく動作していないように思えますが、
window.openerを利用したときだけうまくいかないのですか?
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-10-08 01:02
ちょっと勉強すれば分かるのに。

ラベルは innerHTML か innerText です。
IE ならどっちでも。

opener[0] ってのは不可解。opener[0].$("xxxx") がうまく動作するとは思えない。

<s:label> が値の永続化が可能はやつならば、もしかしたら、ラベル(span or div)
の横にhidden 要素があるかもしれません。この場合は両方更新してあげないと
サーバーまで値が渡りません。

ま、どっちにしても、ブラウザを右クリックしてタグライブラリが展開された状態
のHTMLを精査することから始めた方がいいですね。<s:label> がどんなタグに展開
されるのかでアクセス方法が変わってきます。


}


キリギリス
常連さん
会議室デビュー日: 2004/08/26
投稿数: 33
投稿日時: 2008-10-08 14:33
ぴあちゃん様、
かつのり様、
いつも有難うございます。

頂いたご意見を参考にして、もう少しチャレンジしてみます。
また、なにか進展がありませたら追記させていただきますので
よろしくお願いいたします。

1

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