2006-10-01から1ヶ月間の記事一覧

Function#toString()とswitch構文

switchをつかった以下のようなコード 以下の現象ははFirefox(1.5.0.7)で確認しました(2では問題無)。Function#toString()は信じると痛い目にあうという話。switch構文は以下のようにかける(PHPでもOK!)*1 function foo() { switch(true) { case (typeof(a) !…

Firefoxクラッシュ

Firefox1.5.0.7なんですが…以下のJavaScriptでFirefoxがいってしまいます。なんか、むか〜しIE(id:shogo4405:20060903:1157257268)でも同じことありましたね(--;。いやはや。僕だけかな(?-?) Firefox2.0では正常にfalseを返してくれます。 location instance…

0.1.0系M1リリース

プラグイン実装関係見直していくつかのバグフィックスをしてます。AJAJAはこれから実装始めます(まだAJAJAは動きません!)(Firefox2.0で動くこと確認) http://www.starmsg.net/shared/archives/JSmarty-0.1.0M1.zip

デバッグのおともにvar_dump

JavaScriptでデバックしようとおもったら for(i in object){ document.write(i,'=>'object[i]) }; とかやってオブジェクトの中身をみたりFirebugをつかったりと色々です。 毎回、毎回 for(i in object)〜やるのは正直めんどくさいということで関数一発ででき…

JavaScriptでPHPの関数を実装する

JavaScriptでPHPとかの関数あったらいいなと思うときがあってJSmartyで必要になったので書きました。PHPと同名の関数のJavaScript版です。バグとかあるのは承知の上でまだ完璧に実装終っていませんが置いておきます。ご自由にどうぞ。(増えるかも) ダウンロ…

Dateオブジェクトの返す文字

今、PHPのstrftime関数*1をJavaScriptに移植しています。その為にDateオブジェクトで返される数字の範囲確認したので以下はそのまとめです。2006/10/22に調査実施しました。getYearは実装違うのgetFullYear利用したほうが無難。 IE6 Firefox Opera 備考 getF…

Prototypeパターン

dp

JavaScriptのprototypeではなくGoFのデサパタのPrototypeパターンです。Prototypeパターンは、クラスからインスタンスをつくるのではなく、あるインスタンスから別のインスタンスをつくるパターンのことをさす。 コードサンプル PHPでは無理矢理感が否めない…

JSmartyで textarea 内の文字列をテンプレートとして利用したい

JSmartyではXMLHttpRequestの同期取得でテキストファイルを取得してテンプレート処理しているのですが textarea内の文字を利用したいと思って以下のようなプラグインを書いてみました。具体的には<textarea id="foo">{$foo}</textarea>の文字列をjsmarty.fetch('innerHTML:foo');として{$fo…

JSONPの動作原理

やっと最近JSONPの動作原理を理解した。超頭悪い…。動作原理の私的メモ。JSONPって1と2の組合せの応用。いったい僕は何を勘違いしたのか…。 1.JavaScript関係の処理系は以下のような感じ もっともJSONPでは動的にDOM処理で<script>タグを生成するテクを利用している…

Iteratorパターン

下記例ではIteratorの実装を変更するだけで利用例を変更することなく列挙する順番を変更することが可能です。 サンプル 利用例 var i = new Iterator(['foo0','bar0','foo1','bar1']); while(i.hasNext()){ document.write(i.next()); }; 実装例#01 foo0, ba…

JavaScriptのオブジェクト指向入門

ちょっと色々なサイトで取り上げられているので二番煎じですがまとめておく必要がでてきたのでポストします。 JavaScript言語概要 JavaScript は 手続き型 (procedural) 言語と オブジェクト指向 (object oriented) 言語の両方として機能させられる。 オブジ…

TrimSpreadSheet調べ

アブストラクト TrimSpreadSheetはオープンソースなスプレッドシートエンジンである。記法はHTMLTableを利用し100% JavaScriptとCSSで記述されている。ライセンスはGPL2.0である。

TrimBreakPoint調べ

アブストラクト TrimBreakPointはJavaScriptのデバッグユーティリティである。TrimBreakPointで設定したブレークポイントに存在するスコープの変数の参照や変数の代入などが可能である。

DOMの見慣れないメソッドHTMLElement.insertAdjacent〜

Faster DHTML in 12 Steps (MSDN) DHTMLの12の高速化テクのページの以下のようなコードのinsertAdjacentElementメソッド。(←DOM操作の高速化テク乗っているのでお勧めです。) SPANノードの直後に100個のSPANを追加するコード*1 var node; for (var i=0; i<10…