[Wicket-ja-user 308] Re: wicket:linkで特定のファイル名において謎のonclickが書き込まれる現象について

Back to archive index

shinya okino shiny****@gmail*****
2009年 2月 28日 (土) 18:00:36 JST


沖野です。
調べてみました。

まず、autolinkでは対応するリソースが見つからなかった場合は外部リンクと判断して
onclick属性を付加します。

Wicketではリソース名に'_言語コード'が付いている場合は
その言語コードと言語コードなしとセッションの言語コードでリソースを探します。

'id'はインドネシア語なのでlogin_txt_id.gif > login_txt.gif > login_txt_ja.gif
のように探されるはずなのですが、
JavaのLocaleクラスはインドネシア語の言語コード'id'を内部で古い言語コード'in'で扱うために
Wicketはリソースをlogin_txt_in.gif > login_txt.gif > login_txt_ja.gifのように探してしまいます。
結果としてリソースが見つからないのでonclick属性を付加したimgタグが出力されます。

JDK1.6のソースでは他には'he'を'iw'に'yi'を'ji'にするようにコーディングされていました。

ちなみにwicket1.3.4以前だと言語コードの判定をLocaleクラスに任せていないのでファイル名に_idをつけても
うまく動作します。

意図しない動作を防ぐためにもwicketでは国際化する時以外にリソース名に
言語コードと判定されるような文字は付けない方が良さそうです。

2009/02/27 14:45 Susumu ISHIGAMI <susum****@gmail*****>:
> いつもお世話になっております。
> 石上です。
>
> <wicket:link>において、謎の現象に当たってしまいました。
>
> マークアップファイルに
> <img src="images/login_txt_id.gif" alt="ログインID" width="93" height="15" />
> と記述されたイメージが、実行時には
> <img src="images/login_txt_id.gif" alt="ログインID" width="93" height="15"
> onclick="window.location.href='images/login_txt_id.gif';return
> false;"/>
> のようにおかしなonclickが追加されてしまいます。
> src要素が書き換わっていないので、当然画像が表示されません。
>
> 別の画像、例えば
> <img src="images/login_txt_pw.gif" alt="パスワード" width="90" height="15" />
> なら、
> <img src="resources/com.ebisumart.admin.AdminLoginPanel/images/login_txt_pw.gif"
> alt="パスワード" width="90" height="15"/>
> のようになって正しく画像が表示されています。
>
> ファイル名が_idなのが原因と思い、いくつか試してみたところ、下記のような結果になりました。
> images/login_txt_cd.gif ............OK
> images/login_txt_ja.gif ............OK
> images/login_txt_en.gif ............OK
> images/login_txt_iid.gif ...........OK
> images/login_id_.gif ............OK
> images/loginid.gif ............OK
> images/login_txt_id.gif .............NG
> images/login_txt_ID.gif .............NG
> images/login_txt__id.gif ...........NG
> images/login_id.gif ................NG
>
> "_id"で終わっている時だけうまくいかないということでは釈然としません。
> そういう仕様だと、どこかに載っているのでしょうか?
>
> 以下の情報が関係ありそうですが、原因まではわかりませんでした。
> http://www.nabble.com/extra-'onclick'-is-generated-for-an-image-wrapped-by-a-link-td20980894.html
>
> Wicketのバージョンは1.3.5を使用していますが、1.4rc2でも同様の現象を確認しました。
>
> どなたかこの問題に詳しい方がいらっしゃいませんでしょうか?
>
> また、上の方で、<wicket:link>を使用していると書きましたが、実は、
> getMarkupSettings().setAutomaticLinking(true);
> をセットして常にautolinkで使っています。
> この設定項目を使用することによって、なにか弊害はあるのでしょうか。
> 基本的な質問かもしれませんが、どうぞよろしくお願いいたします。
>
> いつも教えていただいてばかりで恐縮ですが、
> お力を貸していただければ幸いです。
>
> _______________________________________________
> Wicket-ja-user mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user
>



-- 
沖野信也
shiny****@gmail*****




Wicket-ja-user メーリングリストの案内
Back to archive index