X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F02_dom%2F00_XDoc.js;h=7232833c70bdfb07edbd367d65f91f303e886e1a;hb=8e74cf066ea48ec8cf34efb2b5e84725c10c813a;hp=ddea5ded46a1c3781a277aa8e1314a01ad820ed6;hpb=f0f12aa05fdf010ce024e96abe09fea8100fc4b1;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/02_dom/00_XDoc.js b/0.6.x/js/02_dom/00_XDoc.js index ddea5de..7232833 100644 --- a/0.6.x/js/02_dom/00_XDoc.js +++ b/0.6.x/js/02_dom/00_XDoc.js @@ -1,35 +1,92 @@ - - -X.Doc = { - listen : function( type, arg1, arg2, arg3 ){ +/** + * document をラップする + * @namespace X.Doc + * @alias X.Doc + */ +X[ 'Doc' ] = { + /** + * EventDispatcher.prototype.listen 参照 + * @alias X.Doc.listen + */ + 'listen' : function( type, arg1, arg2, arg3 ){ if( type <= X_ViewPort_readyState && type === 'DOMContentLoaded' ){ /* * X.Event.XDOM_READY 以後に listen した場合の対策 */ - X_ViewPort_document.asyncDispatch( type ); + X_ViewPort_document[ 'asyncDispatch' ]( type ); }; - type && arg1 && X_ViewPort_document.listen( type, arg1, arg2, arg3 ); - return X.Doc; + type && arg1 && X_ViewPort_document[ 'listen' ]( type, arg1, arg2, arg3 ); + return X[ 'Doc' ]; }, - - listenOnce : function( type, arg1, arg2, arg3 ){ + /** + * EventDispatcher.prototype.listenOnce 参照 + * @alias X.Doc.listenOnce + */ + 'listenOnce' : function( type, arg1, arg2, arg3 ){ if( type <= X_ViewPort_readyState && type === 'DOMContentLoaded' ){ /* * X.Event.XDOM_READY 以後に listen した場合の対策 */ - X_ViewPort_document.asyncDispatch( type ); + X_ViewPort_document[ 'asyncDispatch' ]( type ); }; - type && arg1 && X_ViewPort_document.listenOnce( type, arg1, arg2, arg3 ); - return X.Doc; + type && arg1 && X_ViewPort_document[ 'listenOnce' ]( type, arg1, arg2, arg3 ); + return X[ 'Doc' ]; }, - - unlisten : function( type, arg1, arg2, arg3 ){ - type && arg1 && X_ViewPort_document.unlisten( type, arg1, arg2, arg3 ); - return X.Doc; + + /** + * EventDispatcher.prototype.unlisten 参照 + * @alias X.Doc.unlisten + */ + 'unlisten' : function( type, arg1, arg2, arg3 ){ + type && arg1 && X_ViewPort_document[ 'unlisten' ]( type, arg1, arg2, arg3 ); + return X[ 'Doc' ]; + }, + + /** + * EventDispatcher.prototype.listening 参照 + * @alias X.Doc.listening + */ + 'listening' : function( type, arg1, arg2, arg3 ){ + return X_ViewPort_document[ 'listening' ]( type, arg1, arg2, arg3 ); }, - listening : function( type, arg1, arg2, arg3 ){ - return X_ViewPort_document.listening( type, arg1, arg2, arg3 ); - } + 'create' : X_Doc_create, + + 'createText' : X_Doc_createText + +}; + +/** + * X.Node 要素を作成する。この時点でツリーには追加されない。 + * @alias X.Doc.create + * @param {string} tag タグ名 + * @param {object} opt_attrs 属性 + * @param {object} opt_css スタイル + * @return {Node} + */ +function X_Doc_create( tag, opt_attrs, opt_css ){ + var list, i; + switch( X_Node_getType( tag ) ){ + case X_NodeType_STRING : + X_Node_newByTag = true; + return new Node( tag, opt_attrs, opt_css ); + case X_NodeType_HTML_STRING : + list = X_HtmlParser_parse( tag, true ); + for( i = list.length; 1 < i; ){ + list[ --i ][ 'kill' ](); + }; + return list[ 0 ]; + }; +}; + +/** + * X.Node テキストを作成する。この時点でツリーには追加されない。 + * @alias X.Doc.createText + * @param {string} textContent + * @return {Node} + */ +function X_Doc_createText( text ){ + X_Node_newByText = true; + return new Node( text ); };