2006-10-01から1ヶ月間の記事一覧
switchをつかった以下のようなコード 以下の現象ははFirefox(1.5.0.7)で確認しました(2では問題無)。Function#toString()は信じると痛い目にあうという話。switch構文は以下のようにかける(PHPでもOK!)*1 function foo() { switch(true) { case (typeof(a) !…
Firefox1.5.0.7なんですが…以下のJavaScriptでFirefoxがいってしまいます。なんか、むか〜しIE(id:shogo4405:20060903:1157257268)でも同じことありましたね(--;。いやはや。僕だけかな(?-?) Firefox2.0では正常にfalseを返してくれます。 location instance…
プラグイン実装関係見直していくつかのバグフィックスをしてます。AJAJAはこれから実装始めます(まだAJAJAは動きません!)(Firefox2.0で動くこと確認) http://www.starmsg.net/shared/archives/JSmarty-0.1.0M1.zip
JavaScriptでデバックしようとおもったら for(i in object){ document.write(i,'=>'object[i]) }; とかやってオブジェクトの中身をみたりFirebugをつかったりと色々です。 毎回、毎回 for(i in object)〜やるのは正直めんどくさいということで関数一発ででき…
JavaScriptでPHPとかの関数あったらいいなと思うときがあってJSmartyで必要になったので書きました。PHPと同名の関数のJavaScript版です。バグとかあるのは承知の上でまだ完璧に実装終っていませんが置いておきます。ご自由にどうぞ。(増えるかも) ダウンロ…
今、PHPのstrftime関数*1をJavaScriptに移植しています。その為にDateオブジェクトで返される数字の範囲確認したので以下はそのまとめです。2006/10/22に調査実施しました。getYearは実装違うのgetFullYear利用したほうが無難。 IE6 Firefox Opera 備考 getF…
JavaScriptのprototypeではなくGoFのデサパタのPrototypeパターンです。Prototypeパターンは、クラスからインスタンスをつくるのではなく、あるインスタンスから別のインスタンスをつくるパターンのことをさす。 コードサンプル PHPでは無理矢理感が否めない…
JSmartyではXMLHttpRequestの同期取得でテキストファイルを取得してテンプレート処理しているのですが textarea内の文字を利用したいと思って以下のようなプラグインを書いてみました。具体的には<textarea id="foo">{$foo}</textarea>の文字列をjsmarty.fetch('innerHTML:foo');として{$fo…
やっと最近JSONPの動作原理を理解した。超頭悪い…。動作原理の私的メモ。JSONPって1と2の組合せの応用。いったい僕は何を勘違いしたのか…。 1.JavaScript関係の処理系は以下のような感じ もっともJSONPでは動的にDOM処理で<script>タグを生成するテクを利用している…
下記例ではIteratorの実装を変更するだけで利用例を変更することなく列挙する順番を変更することが可能です。 サンプル 利用例 var i = new Iterator(['foo0','bar0','foo1','bar1']); while(i.hasNext()){ document.write(i.next()); }; 実装例#01 foo0, ba…
ちょっと色々なサイトで取り上げられているので二番煎じですがまとめておく必要がでてきたのでポストします。 JavaScript言語概要 JavaScript は 手続き型 (procedural) 言語と オブジェクト指向 (object oriented) 言語の両方として機能させられる。 オブジ…
アブストラクト TrimSpreadSheetはオープンソースなスプレッドシートエンジンである。記法はHTMLTableを利用し100% JavaScriptとCSSで記述されている。ライセンスはGPL2.0である。
アブストラクト TrimBreakPointはJavaScriptのデバッグユーティリティである。TrimBreakPointで設定したブレークポイントに存在するスコープの変数の参照や変数の代入などが可能である。
Faster DHTML in 12 Steps (MSDN) DHTMLの12の高速化テクのページの以下のようなコードのinsertAdjacentElementメソッド。(←DOM操作の高速化テク乗っているのでお勧めです。) SPANノードの直後に100個のSPANを追加するコード*1 var node; for (var i=0; i<10…