【JavaScript OOP】DOMのイベントハンドラとインスタンスメソッドの対応付け

DOMの要素とクラスとを対応付けたい場合のイベントハンドラの扱い方.
・Hogeクラスを,クラス属性値hogeのdiv要素(以下hoge要素)と対応付けたい
・Hogeクラスのインスタンスメソッドonmousedownを,hoge要素のonmousedownイベントハンドラと対応付けたい

// Constructor
function Hoge(_fuga){
var _elm = document.createElement('div');
_elm.setAttribute("class", 'hoge');
this.elm = _elm;
this.fuga = _fuga;
}
// Initializer
// インスタンスを作成,インスタンスメソッドをDOMイベントにバインドし,
// インスタンスを返すクラスメソッド.
// DOMイベントハンドラからはthis.fugaでインスタンスのプロパティに
// アクセスできないので,クロージャを用いる.
Hoge.initializer = function(_fuga){
var instance = new Hoge(_fuga);
instance.elm.onmousedown = function(e){
// Hoge.prototype.onmousedownを継承した
// インスタンスメソッドonmousedownを呼び出す
instance.onmousedown(e);
};
return instance;
};
Hoge.prototype.onmousedown = function (e){
this.fuga = 'fugafuga';
};
// var obj = new Hoge('fuga'); の代わりに以下を使う
var obj = Hoge.initializer('fuga');
// hoge要素の上でmousedownすると,obj.fugaの値が'fugafuga'になる.

あまり可愛くないけど,こうするしかないかな.
イベントハンドラじゃなくてイベントリスナを使う場合もほとんど同じなので割愛.

Mac版Safari3.1における,oncontextmenuのデフォルト動作を無効にした時の不具合(2)

http://storybook.jp/mt/2008/06/macsafari31oncontextmenu.html
FCKeditorでは,独自コンテキストメニューをIFRAMEとして開いてるので,Mac版Safari3.1でもフォーカスを取り戻せているようです.ちなみに,FCKeditorのパネルはIFRAME,あるいはIEの場合window.createPopupで開かれる仕様.
(9/10追記)
IFRAMEで独自にチャレンジしてみたけど駄目でした.

MySQL 文字数の制約

(MySQL 5.03以降の話)
VARCHARの場合,設定した文字数が制約.
TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT はそれぞれの最大バイト数が制約.

VARCHAR
VARCHAR(X)のXは文字数.0から65,535までの値.
例)VARCHAR(4)は4文字.4バイトではない.バイト数は文字コードに依存する.
ただし,実際に適用可能な長さは,行の最大サイズ(65,535バイト)を越えない範囲である.

MySQL 5.0.3 and later is subject to the maximum row size (65,535 bytes, which is shared among all columns) and the character set used.

http://dev.mysql.com/doc/refman/5.0/en/char.html
TEXT
最大バイト数は次のとおり.
 TINYTEXT:255 (2^8 – 1) bytes
 TEXT:65,535 (2^16 – 1) bytes
 MEDIUMTEXT:16,777,215 (2^24 – 1) bytes
 LONGTEXT:4,294,967,295 (2^32 – 1) bytes
VARCHARのように,行の最大サイズの制約は受けない.
ただし,max_allowed_packet の制約を受ける.
その他,TEXTとVARCHARとの違いはこちらに.
http://dev.mysql.com/doc/refman/5.0/en/blob.html

Mac版Safari3.1における,oncontextmenuのデフォルト動作を無効にした時の不具合

http://storybook.jp/mt/2008/04/macsafari31.html
ExtJSのほうでも話題になってました.
http://extjs.com/forum/showthread.php?p=141199
いまんとこ対処なし.
SaasBoard/PositLogに関して言えば,
Ctrl + 左クリックで独自コンテキストメニューを表示させると問題を回避できます.

Mac版 Firefox3上でのFCKeditor 2.6.2

return(enter)キー押下時のバグ
http://positlog.org/071212pG.html#id_spr5fxkr
は修正されないままでした.
状況を確認できる環境を持ってないのだろうなぁ.
Firefox2向けにはパッチ付きで報告してあるけど,
http://dev.fckeditor.net/ticket/2140
このパッチあてるとFirefox3ではreturn(enter)キーが全く効かなくなります.あわ.
修正予定.

FLV Media Player

MacとWindowsでMP3の再生環境を揃えるならFLV Media Playerで.
http://www.jeroenwijering.com/

ソースコードもついてくるのが有り難い.
ページのロードに伴って,MP3ファイルも事前ロードさせる方法.
http://www.jeroenwijering.com/?thread=4379#msg52921
いったんスタートして直後にポーズしてるだけですが,とりあえずはこれで出来ます.