[Seasar-user:8996] [S2JSF]Aタグ利用時に、onclickが2回描画される。
Shin Tanimoto
[E-MAIL ADDRESS DELETED]
2007年 7月 6日 (金) 20:21:31 JST
せろです。
S2JSF 1.0.25で、<a>タグに指定したonclick属性が
デプロイ後のHTML上では2回レンダリングされてしまいます。
■再現方法
たとえば、こんなリンクを作ると、
<a m:action="#{addAction.calculate}" onclick="alert('test');">Calculate</a>
こんなボタンになります
<a href="#"
onclick="alert('test');;clear__5Fid77();document.forms['_id77'].elements['_id77:_link_hidden_'].value='_id77:_id87';if(document.form
s['_id77'].onsubmit){document.forms['_id77'].onsubmit();}document.forms['_id77'].submit();return false;" id="_id77:_id87"
onclick="alert('test');">Calculate</a>
onclickが最初と最後の2回描画されているのが分かります。
通常は、大した問題にならないのかも知れませんが、
異常系とかクラスブラウザ対応時に、問題になりそうです。
(ていうか、なんか挙動が安定しなくて困ってます (^^; )
■原因
HtmlCommandLinkRendererで属性をレンダリングする際に、
(isJavascriptAllowedの時に)
独自で作ったonclickを描画した上で、全属性をレンダリングするためでしょう。
■対策
JsfConstantsに
ANCHOR_PASSTHROUGH_ATTRIBUTES_WITHOUT_STYLE_ONCLICKなど、
onclickを描画しない属性配列をつくって、isJavascriptAllowedの時には
この属性をレンダリングすれば良いのかなと思います。
、、、ということで、今晩にでもそのように直しておこうと思いますが、良いですか? (^^;;
それでは
Seasar-user メーリングリストの案内