var X_ViewPort_readyState,
- X_ViewPort_active = !!window.parent || !!document.activeElement, // parent は frameに読み込まれた場合のieのerror回避
+ X_ViewPort_active = ( window.parent === window ) || !window.parent, // parent は frameに読み込まれた場合のieのerror回避
X_ViewPort_activeTimerID,
X_ViewPort_rootElement,
X_ViewPort_lock,
case 'visibilitychange' :
console.log( e.type + ':' + document[ 'hidden' ] );
- X_ViewPort[ 'dispatch' ]( ( X_ViewPort_active = document[ 'hidden' ] ) ? X_EVENT_VIEW_DEACTIVATE : X_EVENT_VIEW_ACTIVATE );
+ X_ViewPort[ 'dispatch' ]( ( X_ViewPort_active = !document[ 'hidden' ] ) ? X_EVENT_VIEW_ACTIVATE : X_EVENT_VIEW_DEACTIVATE );
break;
case 'msvisibilitychange' :
- X_ViewPort[ 'dispatch' ]( ( X_ViewPort_active = document[ 'msHidden' ] ) ? X_EVENT_VIEW_DEACTIVATE : X_EVENT_VIEW_ACTIVATE );
+ console.log( e.type + ':' + document[ 'msHidden' ] );
+ X_ViewPort[ 'dispatch' ]( ( X_ViewPort_active = !document[ 'msHidden' ] ) ? X_EVENT_VIEW_ACTIVATE : X_EVENT_VIEW_DEACTIVATE );
break;
case 'mozvisibilitychange' :
- X_ViewPort[ 'dispatch' ]( ( X_ViewPort_active = document[ 'mozHidden' ] ) ? X_EVENT_VIEW_DEACTIVATE : X_EVENT_VIEW_ACTIVATE );
+ console.log( e.type + ':' + document[ 'mozHidden' ] );
+ X_ViewPort[ 'dispatch' ]( ( X_ViewPort_active = !document[ 'mozHidden' ] ) ? X_EVENT_VIEW_ACTIVATE : X_EVENT_VIEW_DEACTIVATE );
break;
case 'webkitvisibilitychange' :
console.log( e.type + ':' + document[ 'webkitHidden' ] );
- X_ViewPort[ 'dispatch' ]( ( X_ViewPort_active = document[ 'webkitHidden' ] ) ? X_EVENT_VIEW_DEACTIVATE : X_EVENT_VIEW_ACTIVATE );
+ X_ViewPort[ 'dispatch' ]( ( X_ViewPort_active = !document[ 'webkitHidden' ] ) ? X_EVENT_VIEW_ACTIVATE : X_EVENT_VIEW_DEACTIVATE );
break;
case 'blur' :
if( X_UA[ 'IE' ] < 9 ){
xnode = X_Node_getXNode( document.activeElement );
if( xnode ){
- xnode[ 'listen' ]( [ 'focus', 'blur' ], X_ViewPort_detectFocusForIE );
+ xnode[ 'listenOnce' ]( [ 'focus', 'blur' ], X_ViewPort_detectFocusForIE );
//break;
};
if( X_ViewPort_activeTimerID ){
return X_ViewPort_baseFontSize = X_Node_fontSizeNode[ '_rawObject' ].offsetHeight;
};
return X_ViewPort_baseFontSize;
+ },
+
+ /**
+ * キーボードイベントを受け付ける
+ * @alias X.ViewPort.isActive
+ */
+ 'isActive' : function(){
+ return X_ViewPort_active;
+ },
+
+ /**
+ * 可視である。iframe 内のhtmlも
+ * @alias X.ViewPort.isVisible
+ */
+ 'isVisible' : function(){
+ return X_ViewPort_active;
}
};
if( X_UA_EVENT.W3C ){
X_ViewPort_document[ 'listenOnce' ]( 'DOMContentLoaded', X_TEMP.onDomContentLoaded );
} else
-if( 6 <= X_UA[ 'IE' ] && X[ 'inHead' ] ){
+if( 6 <= X_UA[ 'IE' ] && X[ 'inHead' ] && !X_UA[ 'ieExeComError' ] ){ // standalone の除外 -> && !X_UA[ 'ieExeComError' ]
// if this script in Head
- //document.write( '<script id="__ie_onload" defer src="javascript:void(0)"></script>' );
- //X_TEMP._script = document.getElementById( '__ie_onload' );
+ document.write( '<script id=__ieonload defer src=javascript:void(0)></script>' );
+ X_TEMP._script = document.getElementById( '__ieonload' );
// 上のコードはスタンドアローン版ie6でエラー
- X_TEMP._script = document.createElement( '<script id="__ie_onload" defer src="javascript:void(0)"></script>' ) ;
- document.getElementsByTagName("head")[ 0 ].appendChild( X_TEMP._script );
+ //X_TEMP._script = document.createElement( '<script id=__ieonload defer src=javascript:void(0)></script>' ) ;
+ //document.getElementsByTagName( 'head' )[ 0 ].appendChild( X_TEMP._script );
X_TEMP._script.onreadystatechange = function(){
var s = X_TEMP._script;
if( s && s.readyState === 'complete' ){
s.onreadystatechange = X_emptyFunction;
s.onreadystatechange = null;
- s.parentNode.removeChild( s );
+ s.removeNode( true );
delete X_TEMP._script;
X_TEMP.onDomContentLoaded && X_TEMP.onDomContentLoaded();
};