OSDN Git Service

Version 0.6.107, cleanup X.NodeCSS, fix X.Node.Event for touch, add unescape for...
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 01_X.js
1 \r
2 if( !window['console'] || ( window.parent && window.parent.log ) )\r
3         console = { log : function(a){\r
4                 var win, elm;\r
5                 //alert(a);\r
6                 if( window.parent ){\r
7                         elm = parent.document.all ? parent.document.all.log : parent.log || parent.document.getElementById( 'log' );\r
8                         elm && ( elm.innerHTML = a + '<br>' + elm.innerHTML );\r
9                 };\r
10         } };\r
11 \r
12 var undefined,\r
13         X_EMPTY_OBJECT = {},\r
14         X_TEMP = { onSystemReady : [] },\r
15         X_shortcutFunction,\r
16         X_shortcutContext;\r
17 \r
18 /**\r
19  * @namespace ライブラリは X という名前空間を使用します。X( func ) で  X.ViewPort.listenOnce(X.Event.XDOM_READY, func)、 X('#mydiv') として X.Doc.find('#mydiv') のショートハンドになります。\r
20  */ \r
21 function X( v ){\r
22         if( X.Type.isFunction( v ) ){\r
23                 X.ViewPort.listenOnce( X.Event.XDOM_READY, v );\r
24         } else\r
25         if( X_shortcutFunction ){\r
26                 return X_shortcutFunction.apply( X_shortcutContext || X, arguments );\r
27         };\r
28 };\r
29 \r
30 X.VERSION = '0.6.103';\r
31                 \r
32 X.bootTime = + new Date;\r
33 \r
34 X.emptyFunction = new Function;\r
35 \r
36 // TODO defer の場合もあるので、document.readyState を見る\r
37 // MacIE で false\r
38 X.inHead = (function( s ){\r
39         if( !s ) return false;\r
40         if( !s.length ) return false; // Safari1.3 312.8 でerror\r
41         s = s[ s.length - 1 ];\r
42         // Dom0 || Dom1\r
43         s = s.parentElement || s.parentNode || s;// s is for opera7.11\r
44         return s.tagName.toLowerCase() === 'head';// opera7.23 s.tagName is 'HTML'\r
45 })( document.scripts || document.getElementsByTagName && document.getElementsByTagName( 'script' ) || document.all && document.all.tags( 'script' ) );\r
46 \r