Ten

Ten

はてなの自社製JavaScriptフレームワーク。http://www.hatena.ne.jp/js/Ten.js

はてなスターの開発時に作られたとみられ*1、2009年2月現在 Ver 0.20。はてなスターを表示させるスクリプト http://s.hatena.ne.jp/js/HatenaStar.js を読みこませているページではすべて付いてくる。

特徴

  • すべてのメソッドはグローバル変数 Ten 以下に
  • クラスベースのオブジェクト指向プログラミングができる
  • 必要十分な実装
    • ただし最近肥大気味……
  • クロスブラウザ
    • JavaScript 1.5 相当の実装系なら動きます
    • 例えばイベント処理も統一されたインターフェース Ten.Observer により依存性を吸収

機能

Ten.Class?
クラスベースのオブジェクト指向プログラミングのインターフェース
Ten.Function?
bind など
Ten.Array?
flatten など
Ten.JSONP?
new するだけでJSONP
Ten.XHR?
new するだけでXHR
Ten.Observer?
new するだけで addEventListener (もちろんクロスプラットフォーム)
Ten.Event?
DOM の Event インターフェース(つまりイベントリスナーの第1引数)のラッパー
Ten.EventDispatcher?
DOM Events の EventTarget インターフェース(つまり dispatchEvent や addEventListener など)を実装
Ten.DOM?
DOM Elements 関係の「かゆい所に手が届く」メソッドてんこ盛り
Ten.Element?
new するだけでHTML要素作成。入れ子できます
Ten.Cookie?
Cookie を簡単に読み書き
Ten.Selector?
CSSセレクタから要素を取得
(Ten.SelectorNode)
Ten.Selectorの補助
Ten.Color?
#rrggbb をうまく読み書き。オーバーレイできます
Ten.Style
CSS 設定を取得
Ten.Geometry
ブラウザ依存の激しいウィンドウサイズや特定要素の位置取得がこれ一つで
Ten.Position
2次元座標を管理
Ten.Logger
console.log までクロスブラウザで
Ten.Browser
(主に navigator.userAgent を見て)ブラウザを識別

補助機能

Ten.js には入っていないけど、HatenaStar.js には入っている。

Ten.SubWindow?
new するだけでページ内ウィンドウ(もどき)ができます
Ten.Draggable?
new するだけで引数に与えた要素がドラッグ可能に
Ten.Highlight?
ページ内の文字列を動的にハイライト表示できるようになります。

*1:それ以前はprototype.jsなどが人力検索はてななどで使われている。