OSDN Git Service

457bdc19fce33236b76ed348cecdc046ca1a29cd
[pettanr/clientJs.git] / 0.6.x / js / 02_dom / 00_XDoc.js
1 /**
2  * document をラップする
3  * @namespace X.Doc
4  * @alias X.Doc
5  */
6 X[ 'Doc' ] = {
7         /**
8          * EventDispatcher.prototype.listen 参照
9          * @alias X.Doc.listen
10          */
11         'listen' : function( type, arg1, arg2, arg3 ){
12                 if( type <= X_ViewPort_readyState && type === 'DOMContentLoaded' ){
13                         /*
14                          * X.Event.XDOM_READY 以後に listen した場合の対策
15                          */
16                         X_ViewPort_document[ 'asyncDispatch' ]( type );
17                 };
18                 type && arg1 && X_ViewPort_document[ 'listen' ]( type, arg1, arg2, arg3 );
19                 return X[ 'Doc' ];
20         },
21         
22         /**
23          * EventDispatcher.prototype.listenOnce 参照
24          * @alias X.Doc.listenOnce
25          */
26         'listenOnce' : function( type, arg1, arg2, arg3 ){
27                 if( type <= X_ViewPort_readyState && type === 'DOMContentLoaded' ){
28                         /*
29                          * X.Event.XDOM_READY 以後に listen した場合の対策
30                          */
31                         X_ViewPort_document[ 'asyncDispatch' ]( type );
32                 };
33                 type && arg1 && X_ViewPort_document[ 'listenOnce' ]( type, arg1, arg2, arg3 );
34                 return X[ 'Doc' ];
35         },
36
37         /**
38          * EventDispatcher.prototype.unlisten 参照
39          * @alias X.Doc.unlisten
40          */     
41         'unlisten' : function( type, arg1, arg2, arg3 ){
42                 type && arg1 && X_ViewPort_document[ 'unlisten' ]( type, arg1, arg2, arg3 );
43                 return X[ 'Doc' ];
44         },
45
46         /**
47          * EventDispatcher.prototype.listening 参照
48          * @alias X.Doc.listening
49          */     
50         'listening' : function( type, arg1, arg2, arg3 ){
51                 return X_ViewPort_document[ 'listening' ]( type, arg1, arg2, arg3 );
52         },
53         
54         'create'     : X_Doc_create,
55         
56         'createText' : X_Doc_createText
57
58 };
59
60 /**
61  * X.Node 要素を作成する。この時点でツリーには追加されない。
62  * @alias X.Doc.create
63  * @param {string} tag タグ名
64  * @param {object} opt_attrs 属性
65  * @param {object} opt_css スタイル
66  * @return {Node}
67  */
68 function X_Doc_create( tag, opt_attrs, opt_css ){
69         var list, i;
70         switch( X_Node_getType( tag ) ){
71                 case X_Node_TYPE.STRING :
72                         X_Node_newByTag = true;
73                         return new Node( tag, opt_attrs, opt_css );
74                 case X_Node_TYPE.HTML_STRING :
75                         list = X_HtmlParser_parse( tag, true );
76                         for( i = list.length; 1 < i; ){
77                                 list[ --i ][ 'kill' ]();
78                         };
79                         return list[ 0 ];
80         };
81 };
82
83 /**
84  * X.Node テキストを作成する。この時点でツリーには追加されない。
85  * @alias X.Doc.createText
86  * @param {string} textContent
87  * @return {Node}
88  */
89 function X_Doc_createText( text ){
90         X_Node_newByText = true;
91         return new Node( text );
92 };