3 * <p>API ドキュメントと併せて、その意図や背景を綴っていく副読本もご覧ください。
\r
4 * <a href="http://outcloud.blogspot.jp/p/pettanr-api-docs-supplementary-reader.html">クラウド番外地 > ぺったんR API文書の副読本</a>
\r
6 * @example // ライブラリは X という名前空間を使用します。
\r
8 * X( func ) == X.ViewPort[ 'listenOnce' ](X.Event.XDOM_READY, func);
\r
9 * X('#mydiv') == X.Doc.find('#mydiv');
\r
13 if( X_Type_isFunction( v ) ){
\r
14 X[ 'ViewPort' ][ 'listenOnce' ]( X_EVENT_XDOM_READY, v );
\r
16 if( X_shortcutFunction ){
\r
17 return X_shortcutFunction.apply( X_shortcutContext || X, arguments );
\r
22 if( !window['console'] || ( window.parent && window.parent.log ) ){
\r
27 if( window.parent ){
\r
28 elm = parent.document.all ? parent.document.all.log : parent.log || parent.document.getElementById( 'log' );
\r
29 elm && ( elm.innerHTML = a + '<br>' + elm.innerHTML );
\r
35 if( !console.dir ) console.dir = function(){};
\r
42 X_EMPTY_OBJECT = {},
\r
43 X_TEMP = { onSystemReady : [] },
\r
44 X_emptyFunction = new Function,
\r
49 * バージョン文字列:"0.6.xxx"
\r
51 X[ 'VERSION' ] = '0.6.181';
\r
56 X[ 'bootTime' ] = + new Date;
\r
60 * @type {Function} */
\r
61 X[ 'emptyFunction' ] = X_emptyFunction;
\r
64 * このscriptはheadタグの中にあるか?
\r
65 * @type {boolean} */
\r
66 // TODO defer の場合もあるので、document.readyState を見る
\r
67 // TODO body の有無を見ればOKではないか?
\r
69 X[ 'inHead' ] = (function( s ){
\r
70 if( !s ) return false;
\r
71 if( !s.length ) return false; // Safari1.3 312.8 でerror
\r
72 s = s[ s.length - 1 ];
\r
74 s = s.parentElement || s.parentNode || s;// s is for opera7.11
\r
75 return s.tagName.toLowerCase() === 'head';// opera7.23 s.tagName is 'HTML'
\r
76 })( document.scripts || document.getElementsByTagName && document.getElementsByTagName( 'script' ) || document.all && document.all.tags( 'script' ) );
\r