OSDN Git Service

Version 0.6.214, bug fixes X.KB.
authoritozyun <itozyun@user.sourceforge.jp>
Sat, 5 Mar 2016 15:49:21 +0000 (00:49 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Sat, 5 Mar 2016 15:49:21 +0000 (00:49 +0900)
0.6.x/js/01_core/01_X.js
0.6.x/js/01_core/02_XUA.js
0.6.x/js/01_core/21_XViewPort.js
0.6.x/js/02_dom/03_XDomEvent.js
0.6.x/js/02_dom/10_XNodeAnime.js
0.6.x/js/06_net/04_XNetImage.js
0.6.x/js/11_hid/01_KB.js

index 1581967..8f84e89 100644 (file)
@@ -64,6 +64,7 @@ X[ 'emptyFunction' ] = X_emptyFunction;
  * この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
index 79f00e8..acf31f4 100644 (file)
@@ -10,7 +10,7 @@
  * @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
@@ -807,9 +807,10 @@ var X_UA = X[ 'UA' ] = {},
                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
index 1dc98e9..86682a8 100644 (file)
@@ -438,7 +438,7 @@ X[ 'ViewPort' ] = {
         * @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;
 
        /**
index bc7abf0..4497267 100644 (file)
@@ -42,7 +42,7 @@ if( !X_UA[ 'IE' ] || 9 <= X_UA[ 'IE' ] ){
                        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
index 8ae688e..2c877f2 100644 (file)
@@ -12,7 +12,8 @@ var X_NodeAnime_QUEUE           = [],
        /* 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
@@ -521,7 +522,7 @@ function X_NodeAnime_updatePosition( xnode, obj, ratio, useGPU ){
        \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
index 3bcc3b8..9611900 100644 (file)
@@ -11,7 +11,7 @@ var X_ImgLoader_image     = window[ 'Image' ] && new Image(),
        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
@@ -64,15 +64,17 @@ X_TEMP.X_ImgLoader_params = {
                },\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
@@ -83,14 +85,16 @@ function X_ImgLoader_detect(){
        \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
@@ -100,17 +104,18 @@ function X_ImgLoader_handleEvent( e ){
        \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
@@ -123,6 +128,9 @@ function X_ImgLoader_handleEvent( e ){
                                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
index 83e0bfb..9d9646e 100644 (file)
@@ -92,7 +92,7 @@ var X_KB_SPECIALS = eval( // IE5- 対策
                                                        \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
@@ -114,7 +114,9 @@ var X_KB_SPECIALS = eval( // IE5- 対策
                                                                        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
@@ -141,14 +143,21 @@ var X_KB_SPECIALS = eval( // IE5- 対策
                                                        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
@@ -159,7 +168,7 @@ var X_KB_SPECIALS = eval( // IE5- 対策
                                                                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