OSDN Git Service

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