[Seasar-user:10592] Re: [Teeda Ajax] 1.0.11-RC2-SNAPSHOT doOnceNextのrenderJsがtrueの時,KumuのEventが登録できない
Junichi Kato
[E-MAIL ADDRESS DELETED]
2007年 9月 18日 (火) 09:50:19 JST
加藤です。
> よねさんが JavaScript 側で対策してくれました.
> teeda-ajax を以下の SNAPSHOT に置き換えれることで
> 先のサンプルは動きました.
>
> http://maven.seasar.org/maven2-snapshot/org/seasar/teeda/teeda-ajax/1.0.11-RC2-SNAPSHOT/teeda-ajax-1.0.11-RC2-20070917.161725-2.jar
おお、ありがとうございます。
以下も参考になります。ありがとうございます。
不具合に遭遇したとき、自力解決できるようになるとよいかなと思いまして。
機会があるたびにソースを読み込んでみようと思っています。
> > > # パッチ歓迎.
> > すみません.対策ともかく,まずソース読んでみたいです.
> > te:renderJs="true"の場合
> > <script language="JavaScript" type="text/javascript" src="/example-web/teedaExtension/org/seasar/teeda/ajax/js/kumu.js"></script>
> > <script language="JavaScript" type="text/javascript" src="/example-web/teedaExtension/org/seasar/teeda/ajax/js/event.js"></script>
> > <script language="JavaScript" type="text/javascript" src="/example-web/teedaExtension/org/seasar/teeda/ajax/js/disabled.js"></script>
> > を挿入する処理を行っているクラスはどこになるのでしょうか?
> > きっかけをいただければ自分で読み進めますので.
>
> org.seasar.teeda.extension.render.html.THtmlHeadRenderer
>
> です.
> これの encodeEnd() メソッドの中の
>
> renderCssResources(context);
> renderJsResources(context);
> renderInlineCssResources(context);
> renderInlineJsResources(context);
>
> が上記の出力をしています.
> [TEEDA-374] の対応前は,この 4 行は encodeBegin() に
> ありました.
> 大雑把に言うと,encodeBegin() が <head> の開始タグを,
> encodeEnd() が終了タグを出力して,その間に <head> の
> 子要素が出力されます.
>
> このクラスで出力する限り,Teeda によって自動的に
> 追加される <script> 等は,<head> の開始タグの直後か,
> 終了タグの直前かの二者択一になってしまいます.
> 現状では,エンコーディングを指定する <meta> や
> <title> を早めに出力することを優先して終了タグの
> 直前に出力することにしています.
>
> もし PI 等のマーカで指定された位置に <script> 等を
> 追加するようにするなら,このクラスで出力するのではなく,
> <head> の子要素となる UI コンポーネントをツリーの中に
> 作って,そいつのレンダラで上記 4 行に相当する処理を
> することになると思います.
> # 対策できたのでもうやる気ないかもしれませんが.(^^;
Seasar-user メーリングリストの案内