*/\r
// TODO kill したインスタンスのイベントが残っていないか?これは開発用のみ\r
'kill' : function(){\r
- var listeners, flag, p, timers, def;\r
+ var listeners, flag, p, i, list, timers, def;\r
\r
// TODO 破棄済のインスタンスへの kill\r
\r
// listeners がない場合、イベントの登録がないため、BEFORE_KILL_INSTANCE は呼ばれない。\r
// KILL_RESERVED == true の場合、BEFORE_KILL_INSTANCE は呼ばれない。\r
if( listeners && !listeners[ X_LISTENERS_KILL_RESERVED ] && listeners[ X_EVENT_BEFORE_KILL_INSTANCE ] ){\r
- X_Class_SEAL_KILLING[ X_Class_SEAL_KILLING.length ] = this;\r
+ X_Class_SEAL_KILLING[ i = X_Class_SEAL_KILLING.length ] = this;\r
\r
if( this[ 'dispatch' ]( X_EVENT_BEFORE_KILL_INSTANCE ) & X_CALLBACK_PREVENT_DEFAULT ){\r
this[ 'dispatch' ]( X_EVENT_KILL_INSTANCE_CANCELED );\r
\r
X_Class_SEAL_KILLING.length === 1 ?\r
( X_Class_SEAL_KILLING.length = 0 ) :\r
- X_Class_SEAL_KILLING.splice( X_Class_SEAL_KILLING.indexOf( this ), 1 );\r
+ X_Class_SEAL_KILLING.splice( X_Class_SEAL_KILLING[ i ] === this ? i : X_Class_SEAL_KILLING.indexOf( this ), 1 );\r
\r
if( flag ) return;\r
};\r
};\r
\r
if( listeners[ X_EVENT_KILL_INSTANCE ] ){\r
- X_Class_SEAL_KILLING[ X_Class_SEAL_KILLING.length ] = this;\r
+ X_Class_SEAL_KILLING[ i = X_Class_SEAL_KILLING.length ] = this;\r
\r
listeners[ X_LISTENERS_KILL_RESERVED ] = false; \r
this[ 'dispatch' ]( X_EVENT_KILL_INSTANCE );\r
\r
X_Class_SEAL_KILLING.length === 1 ?\r
( X_Class_SEAL_KILLING.length = 0 ) :\r
- X_Class_SEAL_KILLING.splice( X_Class_SEAL_KILLING.indexOf( this ), 1 );\r
+ X_Class_SEAL_KILLING.splice( X_Class_SEAL_KILLING[ i ] === this ? i : X_Class_SEAL_KILLING.indexOf( this ), 1 );\r
+ };\r
+\r
+ if( !( listeners = this[ '_listeners' ] ) ){\r
+ for( p in listeners ){\r
+ //if( X_EMPTY_OBJECT[ opt_type ] ) continue;\r
+ if( p <= X_LISTENERS_KILL_RESERVED ) continue;\r
+ list = listeners[ p ];\r
+ for( i = list.length; i; ){\r
+ this[ 'unlisten' ]( p, list[ --i ] );\r
+ };\r
+ }; \r
};\r
- \r
- X_EventDispatcher_unlistenAll( this );\r
};\r
\r
if( this[ 'instanceOf' ]( Node ) ){\r
};\r
};\r
\r
+ // index が替わっている可能性があるので取り直し\r
+ if( X_Class_SUPER_CALLER[ i ] !== me ) i = X_Class_SUPER_CALLER.indexOf( me );\r
+ \r
if( X_Class_SUPER_STACKS[ i ] === stack ) console.log( 'スーパークラス、またはスーパークラスのコンストラクタは存在しません' );\r
\r
if( stack === 0 ){\r
sFunc = sClass.prototype[ name ];\r
\r
if( sFunc !== myFunc /* X_Object_own( name, sClass.prototype ) */ ){\r
- // this の関数と異なり、値が設定されていたら、今は手を抜いて undef か?見ている、正しくは hasOwnProperty\r
if( X_Type_isFunction( sFunc ) ){\r
X_Class_SUPER_STACKS[ i ] += t;\r
switch( args.length ){\r
- case 0 :\r
- ret = sFunc.call( me );\r
- break;\r
case 1 :\r
- ret = sFunc.call( me, args[ 0 ] );\r
+ ret = sFunc.call( me );\r
break;\r
case 2 :\r
- ret = sFunc.call( me, args[ 0 ], args[ 1 ] );\r
+ ret = sFunc.call( me, args[ 1 ] );\r
break;\r
case 3 :\r
- ret = sFunc.call( me, args[ 0 ], args[ 1 ], args[ 2 ] );\r
+ ret = sFunc.call( me, args[ 1 ], args[ 2 ] );\r
+ break;\r
+ case 4 :\r
+ ret = sFunc.call( me, args[ 1 ], args[ 2 ], args[ 3 ] );\r
break;\r
default :\r
args = X_Array_copy( args );\r
};\r
};\r
\r
+ // index が替わっている可能性があるので取り直し\r
+ if( X_Class_SUPER_CALLER[ i ] !== me ) i = X_Class_SUPER_CALLER.indexOf( me );\r
+\r
if( stack === 0 ){\r
X_Class_SUPER_CALLER.splice( i, 1 );\r
X_Class_SUPER_STACKS.splice( i, 1 );\r
case 'blur' :
case 'focusout' :
- if( 5 < X_UA[ 'IE' ] && X_UA[ 'IE' ] < 9 ){
+ // TODO ie5...
+ if( 5.5 < X_UA[ 'IE' ] && X_UA[ 'IE' ] < 9 ){
xnode = X_Node_getXNode( document.activeElement );
if( xnode ){
xnode[ 'listenOnce' ]( [ 'focus', 'blur' ], X_ViewPort_detectFocusForIE );
X_ViewPort[ 'listenOnce' ]( X_EVENT_PRE_INIT, function(){
X_ViewPort_readyState = X_EVENT_XTREE_READY;
- if( X_TEMP.X_Dom_useBuilder ) X_TEMP.X_Dom_useBuilder = !!X_elmBody.children.length;
!X_TEMP.X_Dom_useBuilder && X_ViewPort[ 'asyncDispatch' ]( X_EVENT_XTREE_READY );
} );
//
if( X_ViewPort_orientationchange ){
- X_EventDispatcher_systemListen( X_ViewPort, 'orientationchange', X_ViewPort_orientationchange );
+ X_ViewPort[ 'listen' ]( 'orientationchange', X_ViewPort_orientationchange );
};
if( X_ViewPort_detectFontSize ){
- X_EventDispatcher_systemListen( X_ViewPort, 'resize', X_ViewPort_resize );
+ X_ViewPort[ 'listen' ]( 'resize', X_ViewPort_resize );
X_Timer_add( 333, X_ViewPort_detectFontSize );
} else {
X_Timer_add( 333, X_ViewPort_resize );
X_ViewPort[ 'asyncDispatch' ]( X_ViewPort_readyState = X_EVENT_XDOM_READY );
} );
- X_ViewPort[ 'asyncDispatch' ]( X_EVENT_PRE_INIT );
+ if( X_TEMP.X_Dom_useBuilder ) X_TEMP.X_Dom_useBuilder = !!X_elmBody.children.length;
+ X_ViewPort[ 'asyncDispatch' ]( X_EVENT_PRE_INIT );
+ X_ViewPort[ 'listen' ]( [ 'beforeunload', 'unload' ] );
- X_EventDispatcher_systemListen( X_ViewPort, [ 'beforeunload', 'unload' ] );
-
-//ブラウザの戻るボタンで戻ったときに呼ばれるイベントとかキャッシュとかそこらへんのこと
-//http://d.hatena.ne.jp/koumiya/20080916/1221580149
-
-console.log( '------------------->' );
+ //ブラウザの戻るボタンで戻ったときに呼ばれるイベントとかキャッシュとかそこらへんのこと
+ //http://d.hatena.ne.jp/koumiya/20080916/1221580149
if( document[ 'webkitHidden' ] !== undefined ){
- X_EventDispatcher_systemListen( X_ViewPort_document, 'webkitvisibilitychange', X_ViewPort );
+ X_ViewPort_document[ 'listen' ]( 'webkitvisibilitychange', X_ViewPort );
} else
if( document[ 'hidden' ] !== undefined ){// iOS 7+
- X_EventDispatcher_systemListen( X_ViewPort_document, 'visibilitychange', X_ViewPort );
+ X_ViewPort_document[ 'listen' ]( 'visibilitychange', X_ViewPort );
} else
if( document[ 'msHidden' ] !== undefined ){
- X_EventDispatcher_systemListen( X_ViewPort_document, 'msvisibilitychange', X_ViewPort );
+ X_ViewPort_document[ 'listen' ]( 'msvisibilitychange', X_ViewPort );
} else
if( document[ 'mozHidden' ] !== undefined ){
- X_EventDispatcher_systemListen( X_ViewPort_document, 'mozvisibilitychange', X_ViewPort );
+ X_ViewPort_document[ 'listen' ]( 'mozvisibilitychange', X_ViewPort );
};
if( window[ 'onpageshow' ] !== undefined ){
- X_EventDispatcher_systemListen( X_ViewPort, [ 'pageshow', 'pagehide' ] );
+ X_ViewPort[ 'listen' ]( [ 'pageshow', 'pagehide' ] );
};
if( document[ 'onfocusin' ] !== undefined ){
// https://github.com/ai/visibilityjs/blob/master/lib/visibility.fallback.js
- X_EventDispatcher_systemListen( X_ViewPort_document, [ 'focusin', 'focusout' ], X_ViewPort );
+ X_ViewPort_document[ 'listen' ]( [ 'focusin', 'focusout' ], X_ViewPort );
};
- X_EventDispatcher_systemListen( X_ViewPort, [ 'focus', 'blur' ] );
+ X_ViewPort[ 'listen' ]( [ 'focus', 'blur' ] );
return X_CALLBACK_UN_LISTEN;
};
if( X_UA_EVENT.W3C ){
X_ViewPort_document[ 'listenOnce' ]( 'DOMContentLoaded', X_TEMP.onDomContentLoaded );
} else
-if( 6 <= X_UA[ 'IE' ] && X[ 'inHead' ] && !X_UA[ 'ieExeComError' ] ){ // standalone の除外 -> && !X_UA[ 'ieExeComError' ]
+if( 6 <= X_UA[ 'IE' ] && X[ 'inHead' ] /* && !X_UA[ 'ieExeComError' ] */ ){ // standalone の除外 -> && !X_UA[ 'ieExeComError' ]
// if this script in Head
//document.write( '<script id=__ieonload defer src=javascript:void(0)></script>' );
//X_TEMP._script = document.getElementById( '__ieonload' );
X_NodeFlags_IE4_FIXED = X_UA[ 'IE4' ] ? 2 << 24 : 0,\r
\r
X_NodeFlags_IE5_DISPLAY_NONE_FIX = X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? 2 << 24 : 0,\r
-\r
+ X_NodeFlags_IE8_OPACITY_FIX = X_UA[ 'IE8' ] && X_UA[ 'ActiveX' ] ? 2 << 25 : 0,\r
+ \r
// http://modernizr.com/downloads/modernizr.js\r
// Thanks to Erik Dahlstrom\r
- X_NodeFlags_IS_SVG = document.createElementNS && document.createElementNS( 'http://www.w3.org/2000/svg', 'svg' )[ 'createSVGRect' ] ? 2 << 25 : 0,\r
+ X_NodeFlags_IS_SVG = document.createElementNS && document.createElementNS( 'http://www.w3.org/2000/svg', 'svg' )[ 'createSVGRect' ] ? 2 << 26 : 0,\r
X_NodeFlags_IS_VML =\r
( function(){\r
- if( !X_UA[ 'ActiveX' ] || X_UA[ 'IE' ] < 5 || 9 < X_UA[ 'IE' ] || X_UA[ 'ieExeComError' ] ) return 0; // standalone の除外 -> X_UA[ 'ieExeComError' ]\r
+ if( !X_UA[ 'ActiveX' ] || X_UA[ 'IE' ] < 5 || 9 < X_UA[ 'IE' ] /* || X_UA[ 'ieExeComError' ] */ ) return 0; // standalone の除外 -> X_UA[ 'ieExeComError' ]\r
\r
document.write(\r
'<!--[if vml]><script id=vmltest1>__vml=1;</script><![endif]-->' +\r
'<!--[if gte vml 1]><script id=vmltest2>__vml=2;</script><![endif]-->' );\r
\r
+ /**\r
+ * VML のバージョン\r
+ * @alias X.Doc.VML\r
+ * @type {number}\r
+ */\r
+ X[ 'Doc' ][ 'VML' ] = window[ '__vml' ] / 2 || 0; \r
+ \r
switch( window[ '__vml' ] ){\r
case 2 :\r
document.getElementById( 'vmltest2' ).removeNode( true );\r
case 1 :\r
document.getElementById( 'vmltest1' ).removeNode( true );\r
- return 2 << 26;\r
+ return 2 << 27;\r
};\r
return 0;\r
})(),\r
\r
- X_NodeFlags_SYSTEM_NODE = 2 << 27,\r
+ X_NodeFlags_SYSTEM_NODE = 2 << 28,\r
\r
X_Node_BITMASK_RESET_STYLE = ( ( 2 << 29 ) - 1 + ( 2 << 29 ) ) ^ (\r
X_NodeFlags_STYLE_IS_DISPLAY_NONE |\r
\r
X_Node_BitMask_IS_DIRTY = X_NodeFlags_DIRTY_POSITION | \r
X_NodeFlags_DIRTY_CONTENT | X_NodeFlags_DIRTY_ID | X_NodeFlags_DIRTY_CLASSNAME |\r
- X_NodeFlags_DIRTY_ATTR | X_NodeFlags_DIRTY_CSS | X_NodeFlags_DIRTY_IE_FILTER,\r
+ X_NodeFlags_DIRTY_ATTR | X_NodeFlags_DIRTY_CSS | X_NodeFlags_DIRTY_IE_FILTER | X_NodeFlags_IE8_OPACITY_FIX,\r
\r
X_Node_BitMask_RESET_DIRTY = ( ( 2 << 29 ) - 1 + ( 2 << 29 ) ) ^ X_Node_BitMask_IS_DIRTY,\r
\r
X_Node_BitMask_RESET_GPU = ( ( 2 << 29 ) - 1 + ( 2 << 29 ) ) ^ ( X_NodeFlags_GPU_RESERVED | X_NodeFlags_GPU_NOW | X_NodeFlags_GPU_RELEASE_RESERVED ),\r
\r
X_Node_BitMask_IE4_IS_MIX = X_NodeFlags_IE4_HAS_TEXTNODE | X_NodeFlags_IE4_HAS_ELEMENT;\r
+\r
+// TODO SVGのバージョン\r
+/**\r
+ * SVG が有効か?\r
+ * @alias X.Doc.SVG\r
+ * @type {boolean}\r
+ */\r
+X[ 'Doc' ][ 'SVG' ] = !!X_NodeFlags_IS_SVG;\r
function X_Node_BoxModel_mesure( that, name ){\r
var flags = that[ '_flags' ], elm;\r
\r
- if( ( ( flags & X_NodeFlags_IN_TREE ) === 0 ) || ( flags & X_NodeFlags_STYLE_IS_DISPLAY_NONE ) ) return 0;\r
+ if( !this[ '_tag' ] || ( ( flags & X_NodeFlags_IN_TREE ) === 0 ) || ( flags & X_NodeFlags_STYLE_IS_DISPLAY_NONE ) ) return 0;\r
\r
X_Node_updateTimerID && X_Node_startUpdate();\r
\r
if( filterFix ){
v = X_Node_CSS_objToIEFilterText( that, filterFix );
- if( v ) css[ ++n ] = 'filter:' + v;
+ if( v ){
+ css[ ++n ] = 'filter:' + v;
+ };
skipFilter = skipFilter && v;
} else {
skipFilter = false;
return flags;
case 'opacity' :
+ flags |= X_NodeFlags_IE8_OPACITY_FIX;
// すでに visibility:hidden で invisible
if( flags & X_NodeFlags_STYLE_IS_INVISIBLE && css[ 'visibility' ] === 'hidden' ) return flags;
newValue == 0 ? // 0 or "0"
if( style = ( raw.currentStyle || raw.style ) ){\r
x = parseFloat( style[ 'left' ] );\r
y = parseFloat( style[ 'top' ] );\r
- a = parseFloat( ( style[ 'filter' ] || 'opacity=1' ).split( 'opacity=' )[ 1 ] );\r
+ a = that[ '_css' ] && 0 <= that[ '_css' ].opacity ? that[ '_css' ].opacity : 1;\r
+ //parseFloat( ( style[ 'filter' ] || 'opacity=1' ).split( 'opacity=' )[ 1 ] );\r
};\r
};\r
\r
};
if( X_Node_html[ '_flags' ] & X_Node_BitMask_IS_DIRTY ){
- X_Node__commitUpdate( X_Node_html, X_Node_html[ '_rawObject' ].parentNode, null, X_Node_html[ '_flags' ] );
+ X_Node__commitUpdate( X_Node_html, X_Node_html[ '_rawObject' ].parentNode, null, X_Node_html[ '_flags' ], 1 );
} else {
- X_Node__commitUpdate( X_Node_head, X_Node_head[ '_rawObject' ].parentNode, null, X_Node_head[ '_flags' ] );
- X_Node__commitUpdate( X_Node_body, X_Node_body[ '_rawObject' ].parentNode, null, X_Node_body[ '_flags' ] );
+ X_Node__commitUpdate( X_Node_head, X_Node_head[ '_rawObject' ].parentNode, null, X_Node_head[ '_flags' ], 1 );
+ X_Node__commitUpdate( X_Node_body, X_Node_body[ '_rawObject' ].parentNode, null, X_Node_body[ '_flags' ], 1 );
};
if( X_Node_updateReservedByReleaseGPU ){
*/
var X_Node__commitUpdate =
X_UA_DOM.W3C ?
- ( function( that, parentElement, nextElement, accumulatedFlags ){
+ ( function( that, parentElement, nextElement, accumulatedFlags, ie8opacity ){
var elm = that[ '_rawObject' ],
created, xnodes, l, next;
if( that[ '_flags' ] & X_NodeFlags_GPU_RELEASE_RESERVED ){
// console.log( 'GPU 解放 ' );
//X_Node_updateReservedByReleaseGPU = true;
- //X_Node__updateRawNode( that, elm );
that[ '_flags' ] &= X_Node_BitMask_RESET_GPU;
//return elm;// TODO もしかしたらこのタイミングで更新できるかも。
};
that[ '_flags' ] |= X_NodeFlags_ACTUAL_LISTENING;
};
+ ie8opacity = ie8opacity * ( that[ '_css' ] && 0 <= that[ '_css' ].opacity ? that[ '_css' ].opacity : 1 );
+
// 8. 更新の適用
if( accumulatedFlags & X_Node_BitMask_IS_DIRTY ){
delete that[ '_fontSize' ];
- X_Node__updateRawNode( that, elm );
+ X_Node__updateRawNode( that, elm, ie8opacity, accumulatedFlags );
};
// 9. ie5 only
// 10. 子要素の更新。
if( ( xnodes = that[ '_xnodes' ] ) && ( l = xnodes.length ) ) {
for( ; l; ){
- next = X_Node__commitUpdate( xnodes[ --l ], elm, next, accumulatedFlags );
+ next = X_Node__commitUpdate( xnodes[ --l ], elm, next, accumulatedFlags, ie8opacity );
};
};
*/
var X_Node__updateRawNode =
X_UA_DOM.W3C ?
- ( function( that, elm ){
- var attrs, rename, k, v;
+ ( function( that, elm, ie8opacity, accumulatedFlags ){
+ var attrs, rename, k, v, memory, f;
// textNode
if( !that[ '_tag' ] ){
delete that[ '_newAttrs' ];
};
+ if( accumulatedFlags & X_NodeFlags_IE8_OPACITY_FIX ){
+ memory = that[ '_css' ] && that[ '_css' ].opacity;
+ if( f = true ){
+ if( !that[ '_css' ] ) that[ '_css' ] = {};
+ that[ '_css' ].opacity = ie8opacity;
+ if( that[ '_flags' ] & X_NodeFlags_DIRTY_CSS ){
+ that[ '_flags' ] |= X_NodeFlags_OLD_CSSTEXT;
+ } else
+ if( !( that[ '_flags' ] & X_NodeFlags_DIRTY_IE_FILTER ) ){
+ that[ '_flags' ] |= X_NodeFlags_DIRTY_IE_FILTER;
+ };
+ };
+ };
+
// style
if( that[ '_flags' ] & X_NodeFlags_DIRTY_CSS ){
if( that[ '_flags' ] & X_NodeFlags_OLD_CSSTEXT ? X_Node_CSS_objToCssText( that ) : that[ '_cssText' ] ){
};
};
+ if( f ){
+ if( 0 <= memory ){
+ that[ '_css' ].opacity = memory;
+ } else {
+ delete that[ '_css' ].opacity;
+ if( X_Object_isEmpty( that[ '_css' ] ) ) delete that[ '_css' ];
+ };
+ };
+
that[ '_flags' ] &= X_Node_BitMask_RESET_DIRTY;
}) :
X_UA_DOM.IE4 ?
that[ '_listeners' ] && X_EventDispatcher_toggleAllEvents( that, false );// イベントの退避
that[ '_flags' ] &= ~X_NodeFlags_ACTUAL_LISTENING;
};
-
+
// ie5では filter の効いている要素をremove時に破棄して、再度append 時に新規生成する
// ちなみに elm.filters に触ると ie8 でなぜかカラム落ちが発生、、、
if( X_Node_displayNoneFixForIE5 ){
if( !that[ '_attrs' ] ) that[ '_attrs' ] = {};
that[ '_attrs' ].selectedIndex = elm.selectedIndex;
};
- if( that[ '_tag' ] === 'INPUT' && that._attr && ( that._attr.type === 'checkbox' || that._attr.type === 'radio' ) && ( !that[ '_newAttrs' ] || !X_Object_inObject( 'checked', that[ '_newAttrs' ] ) ) ){
+ if( that[ '_tag' ] === 'INPUT' && that[ '_attrs' ] && ( that[ '_attrs' ].type === 'checkbox' || that[ '_attrs' ].type === 'radio' ) && ( !that[ '_newAttrs' ] || !X_Object_inObject( 'checked', that[ '_newAttrs' ] ) ) ){
if( !that[ '_attrs' ] ) that[ '_attrs' ] = {};
that[ '_attrs' ].checked = elm.checked;
};
if( !that[ '_attrs' ] ) that[ '_attrs' ] = {};
that[ '_attrs' ].selectedIndex = elm.selectedIndex;
};
- if( that[ '_tag' ] === 'INPUT' && that._attr && ( that._attr.type === 'checkbox' || that._attr.type === 'radio' ) && ( !that[ '_newAttrs' ] || !X_Object_inObject( 'checked', that[ '_newAttrs' ] ) ) ){
+ if( that[ '_tag' ] === 'INPUT' && that[ '_attrs' ] && ( that[ '_attrs' ].type === 'checkbox' || that[ '_attrs' ].type === 'radio' ) && ( !that[ '_newAttrs' ] || !X_Object_inObject( 'checked', that[ '_newAttrs' ] ) ) ){
if( !that[ '_attrs' ] ) that[ '_attrs' ] = {};
that[ '_attrs' ].checked = elm.checked;
};
// complete\r
console.log( 'xtree 作成完了' );\r
X_ViewPort[ 'asyncDispatch' ]( X_EVENT_XTREE_READY );\r
- elmProgress.parentNode ? elmProgress.parentNode.removeChild( elmProgress ) : ( elmProgress.outerHTML = '' );\r
+ \r
+ if( X_UA[ 'IE' ] < 6 ){\r
+ // IE5.01 でビルド時間が短い時に removeChild を通るとエラー!\r
+ elmProgress.outerHTML = '';\r
+ } else {\r
+ elmProgress.parentNode.removeChild( elmProgress );\r
+ };\r
\r
delete X_TEMP.asyncCreateTree;\r
delete X_TEMP.bindElementToXnode;\r
if( X_XHR_createMSXML ){\r
( function(){\r
var x = '.XMLHTTP',\r
- m = 'MSXML2' + x,\r
- n = [ m + ".6.0", m + ".3.0", m + ".5.0", m + ".4.0", m, "Microsoft" + x ],\r
+ m = 'Msxml2' + x,\r
+ n = [ m + '.6.0', m + '.3.0', m + '.5.0', m + '.4.0', m, 'Microsoft' + x ],\r
v = [ 6, 3, 5, 4, 2, 1 ],\r
i = -1,\r
a;\r
2: リクエストを受信した\r
3: リクエストの処理中\r
4: リクエストは終了してレスポンスの準備が完了\r
- status 200: "OK"\r
+ status 200: 'OK'\r
404: Page not found\r
\r
If-Modified-Sinceヘッダを利用してWebページのキャッシュを行うXMLHttpRequestラッパー\r
// return: XML DOM in response body\r
\r
JKL.ParseXML.HTTP.prototype.documentElement = function() {\r
- // debug.print( "documentElement: "+this.req );\r
+ // debug.print( 'documentElement: '+this.req );\r
if ( ! this.req ) return;\r
if ( this.req.responseXML ) {\r
return this.req.responseXML.documentElement; // XMLHTTPRequest\r
f = list[ i ];\r
switch( f.cbKind ){\r
case X_CLOSURE_THIS_FUNC :\r
- if( f.lock ){\r
- X_EventDispatcher_systemListen( newNode, type, f.context === this ? newNode : f.context, f.func, f.supplement );\r
- } else {\r
- newNode[ f.once ? 'listenOnce' : 'listen' ]( type, f.context === this ? newNode : f.context, f.func, f.supplement );\r
- };\r
+ newNode[ f.once ? 'listenOnce' : 'listen' ]( type, f.context === this ? newNode : f.context, f.func, f.supplement );\r
break;\r
case X_CLOSURE_HANDLEEVENT :\r
- if( f.lock ){\r
- X_EventDispatcher_systemListen( newNode, type, f.context === this ? newNode : f.context, f.supplement );\r
- } else {\r
- newNode[ f.once ? 'listenOnce' : 'listen' ]( type, f.context === this ? newNode : f.context, f.supplement );\r
- };\r
+ newNode[ f.once ? 'listenOnce' : 'listen' ]( type, f.context === this ? newNode : f.context, f.supplement );\r
break;\r
/*\r
case X_CLOSURE_FUNC_ONLY :\r
if( f.lock ){\r
- X_EventDispatcher_systemListen( newNode, type, f.func, f.supplement );\r
+ newNode[ 'listen' ]( type, f.func, f.supplement );\r
} else {\r
newNode[ f.once ? 'listenOnce' : 'listen' ]( type, f.func, f.supplement );\r
};\r
updateCoursor : function( cursor ){
- },
-
- _remove : function(){
- X_EventDispatcher_unlistenAll( XUI_xnodeInteractionOverlay );
- _Box.prototype._remove.call( this );
}
}
);
summary : X.UA.Windows ? 'Windows ' + X.UA.Windows : X.UA.Mac ? 'Mac' : X.UA.Android ? 'Android' : X.UA.iOS ? 'iOS' : 'Other'\r
},\r
{\r
+ label : 'IE6専用 背景画像ちらつき対処',\r
+ summary : X.Doc.ieExeComError ? 'error!' : X.UA.IE6 ? 'success!' : '-'\r
+ },\r
+ {\r
+ label : 'SVG',\r
+ summary : X.Doc.SVG ? 'o' : '-'\r
+ },\r
+ {\r
+ label : 'VML',\r
+ summary : X.Doc.VML || '-'\r
+ },\r
+ {\r
+ label : 'XHR',\r
+ summary :\r
+ X.XHR.XDR ? ( X.XHR.MSXML ? 'W3C+XDR+MSXML' + X.XHR.MSXML : 'W3C+XDR' ) :\r
+ X.XHR.W3C ? ( X.XHR.CORS ? 'W3C Lv2' : 'W3C' ) :\r
+ X.XHR.MSXML ? 'MSXML' + X.XHR.MSXML :\r
+ X.XHR.FLASH ? 'Flash' + X.XHR.FLASH : ''\r
+ },\r
+ {\r
label : 'ユーザーエージェント文字列',\r
summary : navigator.userAgent\r
},\r
} \r
);\r
\r
+\r
+\r