javaScript Template のこと。HTML Parser制作あれこれ

Posted by dab | 2007年9月26日 水曜日 23:01:38 < だぶ天, コンピュータ >

JavaScript Templateを作るにあたって、いわゆるパーサーってのはたくさん作ってます。
HTMLタグの分離、タグの中の属性、{tpl::if}で使ってるif文を数式にして計算するとか、そのへんです。

自分で1文字ずつ解釈するようなパーサーを作ってるので、ソースコードはものすごくごちゃごちゃしてるんですが、Adobe の Spryのコードを見てみると、やはり正規表現を使ってる様子。
う~ん、、、やっぱりこういうのは正規表現を使った方が早いんだけど、自分にはそういう正規表現を考えるのは無理です><

独自の属性はそれでいいとして、今苦労してるのがonclickとかのイベント属性。

onclick=”func1(‘abc,def’, ‘ghi()jkl’);func2(‘abc’abc’);func3(‘abc;def’)”>

文字列やエスケープが無ければ簡単なんだけど、なんかややこしくなってます。

new Function()を使って文字列からfunctionは作れるので、それをaddEventListener / attachEventに入れればいいけど、Spryではそういう判断はせずに、通常のattributesしか見てない様子。
なんか、parentNode.innerHTMLとか出てくるんだけど、やっぱりinnerHTMLにほりこんでるのかなぁ。。。
PerlのHTTP::Parserではイベント属性とか関係ないから、属性名だけ見てあとは一緒(^^;

ルートノードがないとparentNode.innerHTMLは当然使えないわけで、どうすんの!? (いや、ある程度はできてるんですが)

TrackBack URI : http://home.wi-wi.jp/blog/wp-trackback.php?p=88

Leave a comment

:mrgreen: :neutral: :twisted: :shock: :smile: :???: :cool: :evil: :grin: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: