* このscriptはheadタグの中にあるか?\r
* @type {boolean} */\r
// TODO defer の場合もあるので、document.readyState を見る\r
+// TODO body の有無を見ればOKではないか?\r
// MacIE で false\r
X[ 'inHead' ] = (function( s ){\r
if( !s ) return false;\r
* @type {object}\r
*/\r
var X_UA = X[ 'UA' ] = {},\r
- X_UA_classNameForHTML = 'js-enabled ';\r
+ X_UA_classNameForHTML = '';\r
\r
(function(){\r
var dua = navigator.userAgent,\r
for( k in X_UA ){\r
v = X_UA[ k ];\r
if( v ){\r
- X_UA_classNameForHTML += k + ' ';\r
if( v !== true ){\r
X_UA_classNameForHTML += k + v + ' ';\r
+ } else {\r
+ X_UA_classNameForHTML += k + ' ';\r
};\r
};\r
}; \r
* @alias X.Doc.html
* @type {Node}
*/
- X[ 'Doc' ][ 'html' ] = html = X_Node_html = X_elmHtml && Node( X_elmHtml )[ 'removeClass' ]( 'js-disabled' )[ 'addClass' ]( X_UA_classNameForHTML );
+ X[ 'Doc' ][ 'html' ] = html = X_Node_html = X_elmHtml && Node( X_elmHtml )[ 'removeClass' ]( 'js-disabled' )[ 'addClass' ]( X_UA_classNameForHTML.split( '.' ).join( '_' ) );
html[ '_flags' ] |= X_NodeFlags_IN_TREE;
/**
altKey, ctrlKey, metaKey, shiftKey, target, xtarget, offset, related, force,\r
elm, i, n, time, touch, ev;\r
\r
- //this._event = e;\r
+ this._e = e;\r
this[ 'type' ] = type = X_Event_RenameTo[ originalType ] || originalType;\r
\r
switch( type ){\r
/* Opera mobile で translateZ(0) が有効だと XY が 0 0 になる */\r
/* GPUレイヤーにいる間に要素のコンテンツを変更をすると transitionend が動かなくなるっぽい Mac safari と firefox */\r
X_NodeAnime_translateZ = X_Node_CSS_VENDER_PREFIX[ 'perspective' ] &&\r
- !X_UA[ 'OperaMobile' ] && !X_UA[ 'OperaTablet' ] ? ' translateZ(0)' : '',\r
+ !X_UA[ 'OperaMobile' ] && !X_UA[ 'OperaTablet' ] &&\r
+ !( X_UA[ 'IE' ] === 11 ) && !( X_UA[ 'IEHost' ] === 11 ) ? ' translateZ(0)' : '',\r
\r
/*\r
* phase:\r
\r
//console.log( 'updatePosition x:' + x + ' gpu:' + !!useGPU );\r
if( obj.transform ){\r
- if( x === x || y === y ) str += ' translate(' + ( x | 0 ) + 'px,' + ( y | 0 ) + 'px)';\r
+ if( ( x === x || y === y ) && ( x !== 0 && y !== 0 ) ) str += ' translate(' + ( x | 0 ) + 'px,' + ( y | 0 ) + 'px)';\r
if( rotate < 0 || 0 < rotate ) str += ' rotate(' + rotate + 'deg)'; // opera は rad?\r
if( skewX < 0 || 0 < skewX ) str += ' skewX(' + skewX + 'deg)';\r
if( skewY < 0 || 0 < skewY ) str += ' skewY(' + skewY + 'deg)';\r
X_ImgLoader_isElement = !( X_UA[ 'IE' ] < 9 ) && X_Type_isHTMLElement( X_ImgLoader_image ),\r
// http://uupaa.hatenablog.com/entry/2013/12/17/171809\r
// お手軽に画像の読み込みをハンドリングする、今どきな方法\r
- X_ImgLoader_0forError = !X_UA[ 'IE' ] || X_UA[ 'IE' ] === 11;\r
+ X_ImgLoader_0forError = !X_UA[ 'IE' ] || X_UA[ 'IE' ] === 11 || X_UA[ 'IEHost' ] === 11;\r
\r
/*\r
* TODO\r
},\r
\r
reset : function(){\r
- console.log( 'X.Net.Image:reset ' + this.abspath + ' timerID:' + this.timerID );\r
+ //console.log( '/ X.Net.Image:reset ' + this.abspath + ' timerID:' + this.timerID );\r
\r
this.timerID && X_Timer_remove( this.timerID );\r
this.timerID = 0;\r
\r
+ this.finish = false;\r
+ this.abspath = ''; \r
//X_ImgLoader_isElement ? this[ '_rawObject' ].removeAttribute( 'src' ) : ( this[ '_rawObject' ].src = '' );\r
this[ '_rawObject' ].src = '';\r
- this.finish = false;\r
- this.abspath = '';\r
+ \r
+ //console.log( '\ X.Net.Image:reset ----------- *' );\r
}\r
};\r
\r
\r
if( raw && raw.complete ){\r
this.finish = true;\r
- console.log( 'X.Net.Image:detect ' + raw.width );\r
+ //console.log( 'X.Net.Image:detect ' + raw.width );\r
if( raw.width ) return;\r
X_Timer_remove( this.timerID );\r
+ //console.log( '* X.Net.Image:ERROR @detect(1) ' + this.abspath );\r
this.timerID = this[ 'asyncDispatch' ]( X_EVENT_ERROR );\r
} else\r
if( this.timeout < ( this.tick += this.delay ) ){\r
this.finish = true;\r
X_Timer_remove( this.timerID );\r
+ //console.log( '* X.Net.Image:ERROR @detect(2) ' + this.abspath );\r
this.timerID = this[ 'asyncDispatch' ]( { type : X_EVENT_ERROR, 'timeout' : true } );\r
};\r
};\r
\r
// IE11 reset() 時にここに入ってくる...\r
if( !this.abspath ) return;\r
- console.log( 'X.Net.Image:handleEvent ' + e.type );\r
+ //console.log( 'X.Net.Image:handleEvent ' + e.type );\r
\r
switch( e.type ){\r
case 'error' :\r
- //case 'abort' : // TODO ??\r
// ie11(10,9 開発モード)で mineType 不正の場合、画像取得に成功してもエラーイベントが起こるのを無視する。\r
if( X_ImgLoader_0forError && raw.width ) return;\r
if( this.finish ) return;\r
this.finish = true;\r
this.timerID && X_Timer_remove( this.timerID );\r
- this.timerID = this[ 'asyncDispatch' ]( /*e.type === 'error' ?*/ X_EVENT_ERROR /*: X_EVENT_CANCELED*/ );\r
+ //console.log( '* X.Net.Image:ERROR @handle ' + this.abspath + X.Timer.now() );\r
+ //console.dir( raw );\r
+ this.timerID = this[ 'asyncDispatch' ]( this.timeout, X_EVENT_ERROR );\r
break;\r
\r
case 'load' :\r
return;\r
};\r
\r
+ //console.log( '* X.Net.Image:LOAD @handle ' + this.abspath + X.Timer.now() );\r
+ //console.dir( raw );\r
+ \r
size = X_Util_Image_getActualDimension( !X_ImgLoader_isElement ? this.abspath : this );\r
this.timerID = this[ 'asyncDispatch' ]( {\r
'type' : X_EVENT_SUCCESS,\r
\r
case 'keypress' :\r
// keydown 側で発火しているものは再び発火しない\r
- console.log( 'keypress : chrCode:' + chrCode + ' down:' + X_KB_DOWN_KEYS[ chrCode ] + ( X_KB_CANCELED[ chrCode ] ? ' Cancel!' : '' ) );\r
+ \r
if( X_KB_DOWN_KEYS[ chrCode ] ){\r
return X_KB_CANCELED[ chrCode ] ? X_CALLBACK_PREVENT_DEFAULT : cb;\r
} else\r
metaKey : !!X_KB_DOWN_KEYS[ 224 ]\r
} );\r
\r
- X_KB_lastIs10Key = true;\r
+ X_KB_lastIs10Key = false;\r
+ \r
+ console.log( X_KB_lastKeyCode + 'keypress : chrCode:' + chrCode + ' down:' + X_KB_DOWN_KEYS[ chrCode ] + ( X_KB_CANCELED[ chrCode ] ? ' Cancel!' : '' ) );\r
};\r
return cb;\r
\r
if( X_KB_DOWN_KEYS[ keyCode ] ) delete X_KB_DOWN_KEYS[ keyCode ];\r
if( X_KB_CANCELED[ keyCode ] ) delete X_KB_CANCELED[ keyCode ];\r
\r
- chrCode = 0;\r
+ \r
if( !special ){\r
// keyCode から charCode を復帰する\r
chrCode = X_KB_TRANSFOEM[ keyCode ];\r
if( !chrCode ) return cb;\r
delete X_KB_TRANSFOEM[ keyCode ];\r
+ } else\r
+ if( 42 <= special ){\r
+ chrCode = special; // ie8で必要... Firefox でもテンキーの+-*/ で必要...\r
+ } else {\r
+ chrCode = 0;\r
};\r
- \r
+ \r
+ console.log( keyCode + ' keyup ' + chrCode );\r
+ \r
cb |= this[ 'dispatch' ]( {\r
type : 'keyup',\r
keyCode : keyCode,\r
altKey : X_KB_DOWN_KEYS[ 18 ],\r
metaKey : X_KB_DOWN_KEYS[ 224 ]\r
} );\r
-\r
+ \r
return cb;\r
\r
case X_EVENT_VIEW_ACTIVATE :\r