Uploaded image for project: 'S2JSF'
  1. S2JSF
  2. JSF-67

[Seasar-user:8996][S2JSF]Aタグ利用時に、onclickが2回描画される。

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 1.0.26
    • Affects Version/s: 1.0.25
    • None

      ■概要
      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の時には
      この属性をレンダリングすれば良いのかなと思います。

            Assignee:
            cero-t cero-t
            Reporter:
            cero-t cero-t
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: