<meta http-equiv="imagetoolbar" content="no">\r
<meta name="format-detection" content="telephone=no">\r
<meta name="apple-mobile-web-app-capable" content="yes">\r
-<meta name="viewport" id="dynamic-viewport" content="width=device-width,target-densitydpi=device-dpi,initial-scale=1,user-scalable=0,maximum-scale=1,minimum-scale=1">\r
+<meta name="viewport" id="dynamic-viewport" content="width=device-width,target-densitydpi=medium-dpi,initial-scale=1,user-scalable=0,maximum-scale=1,minimum-scale=1">\r
<link rel="stylesheet" type="text/css" media="all" href="css/xui.css">\r
\r
<script type="text/javascript" src="js/import.js"></script>\r
\r
// 4:3 model\r
v = screen.width === screen.height * 1.5 || screen.width * 1.5 === screen.height;\r
- \r
- if( sys === 'iPhone' ){\r
- /**\r
- * @alias X.UA.iPhone\r
- * @type {boolean}\r
- */\r
- X_UA[ 'iPhone' ] = true;\r
- if( v ){\r
+\r
+ switch( sys ){\r
+ case 'iPhone' :\r
+ case 'iPhone Simulator' :\r
/**\r
- * iPhone4s以下\r
- * @alias X.UA.iPhone_4s\r
+ * @alias X.UA.iPhone\r
* @type {boolean}\r
*/\r
- X_UA[ 'iPhone_4s' ] = true;\r
- \r
- if( i ){\r
+ X_UA[ 'iPhone' ] = true;\r
+ if( v ){\r
/**\r
- * iPhone3GS以下\r
- * @alias X.UA.iPhone_3GS\r
+ * iPhone4s以下\r
+ * @alias X.UA.iPhone_4s\r
* @type {boolean}\r
*/\r
- X_UA[ 'iPhone_3GS' ] = true;\r
- }; \r
- };\r
-\r
- //alert( 'iPhone ' + ( X_UA[ 'iPhone_3GS' ] ? '3GS以下' : X_UA[ 'iPhone_4s' ] ? '4s以下' : '5以上' ) );\r
- };\r
- if( sys === 'iPad' ){\r
- /**\r
- * @alias X.UA.iPad\r
- * @type {boolean}\r
- */\r
- X_UA[ 'iPad' ] = true;\r
- if( i ){\r
+ X_UA[ 'iPhone_4s' ] = true;\r
+ \r
+ if( i ){\r
+ /**\r
+ * iPhone3GS以下\r
+ * @alias X.UA.iPhone_3GS\r
+ * @type {boolean}\r
+ */\r
+ X_UA[ 'iPhone_3GS' ] = true;\r
+ }; \r
+ };\r
+ break;\r
+ \r
+ case 'iPad' :\r
+ case 'iPad Simulator' :\r
/**\r
- * iPad2以下または初代iPad mini 以下\r
- * @alias X.UA.iPad_2Mini1\r
+ * @alias X.UA.iPad\r
* @type {boolean}\r
*/\r
- X_UA[ 'iPad_2Mini1' ] = true;\r
- };\r
- };\r
- if( sys === 'iPod' ){\r
- /**\r
- * @alias X.UA.iPod\r
- * @type {boolean}\r
- */\r
- X_UA[ 'iPod' ] = true;\r
-\r
- if( v ){\r
+ X_UA[ 'iPad' ] = true;\r
+ if( i ){\r
+ /**\r
+ * iPad2以下または初代iPad mini 以下\r
+ * @alias X.UA.iPad_2Mini1\r
+ * @type {boolean}\r
+ */\r
+ X_UA[ 'iPad_2Mini1' ] = true;\r
+ };\r
+ break;\r
+ \r
+ case 'iPod' :\r
+ case 'iPod Simulator' : // 必要??\r
/**\r
- * iPod4以下\r
- * @alias X.UA.iPod_4\r
+ * @alias X.UA.iPod\r
* @type {boolean}\r
*/\r
- X_UA[ 'iPod_4' ] = true;\r
- \r
- if( i ){\r
+ X_UA[ 'iPod' ] = true;\r
+ \r
+ if( v ){\r
/**\r
- * iPod3以下\r
- * @alias X.UA.iPod_3\r
+ * iPod4以下\r
+ * @alias X.UA.iPod_4\r
* @type {boolean}\r
*/\r
- X_UA[ 'iPod_3' ] = true;\r
- }; \r
- };\r
- //alert( 'iPod touch ' + ( X_UA[ 'iPod_3' ] ? '3以下' : X_UA[ 'iPod_4' ] ? '4以下' : '5以上' ) );\r
+ X_UA[ 'iPod_4' ] = true;\r
+ \r
+ if( i ){\r
+ /**\r
+ * iPod3以下\r
+ * @alias X.UA.iPod_3\r
+ * @type {boolean}\r
+ */\r
+ X_UA[ 'iPod_3' ] = true;\r
+ }; \r
+ };\r
+ break;\r
};\r
- // TODO iPhone Simulator\r
\r
console.log( '>> iOS : ' + X_UA[ 'iOS' ] );\r
} else\r
*/\r
X_UA[ 'Safari' ] = v;\r
} else\r
- if( i <= 528.16 ){\r
- X_UA[ 'Safari' ] = i < 73 ? 0.8 :\r
- i < 85 ? 0.9 :\r
- i < 100 ? 1 :\r
- i < 125 ? 1.1 :\r
- i < 312 ? 1.2 :\r
- i < 412 ? 1.3 :\r
- i <= 419.3 ? 2 :\r
- i <= 525.13 ? 3 :\r
- i <= 525.25 ? 3.1 : 3.2;\r
+ if( v <= 528.16 ){\r
+ X_UA[ 'Safari' ] = v < 73 ? 0.8 :\r
+ v < 85 ? 0.9 :\r
+ v < 100 ? 1 :\r
+ v < 125 ? 1.1 :\r
+ v < 312 ? 1.2 :\r
+ v < 412 ? 1.3 :\r
+ v <= 419.3 ? 2 :\r
+ v <= 525.13 ? 3 :\r
+ v <= 525.25 ? 3.1 : 3.2;\r
};\r
}; \r
\r
proto = sClass.prototype,\r
i = X_Class_SUPER_CALLER.indexOf( me ),\r
args = arguments,\r
- p, name, t, sFunc, ret;\r
+ p, name, stack, t, sFunc, ret;\r
\r
if( X_Type_isFunction( myFunc ) ){\r
for( p in proto ){\r
X[ 'XML' ] = XMLWrapper;\r
\r
/**\r
- * XML 探索用のラッパークラスです\r
+ * XML ツリーを探索して読み出す用のラッパークラスです.XML を操作する機能はありません、あしからず…\r
* @alias X.XML\r
* @class XML 探索用のラッパークラスです\r
* @constructor\r
* @param {XMLElement}\r
*/\r
function XMLWrapper( xml ){\r
- this._rawXML = xml;\r
+ if( xml ){\r
+ this._rawXML = xml;\r
+ this.tagName = xml.tagName;\r
+ };\r
};\r
\r
/**\r
+ * tagName または nodeName\r
+ * @alias X.XML.prototype.tagName\r
+ * @type {string}\r
+ */\r
+XMLWrapper.prototype.tagName = '';\r
+/**\r
* ラップした xml の数 常に1または0, XMLList の場合2以上\r
* @alias X.XML.prototype.length\r
* @type {Number}\r
'url' : function( url ){\r
var pair = X_Pair_get( this );\r
\r
- pair && ( pair.location.href = url );\r
+ pair && ( pair.page.location.href = url );\r
+ return this;\r
},\r
\r
/**\r
},\r
\r
/**\r
- * 別窓にfocusする\r
+ * 別窓にfocusする ..firefox でできない...\r
* @return {Window} チェーンメソッド\r
*/\r
'focus' : function(){\r
var pair = X_Pair_get( this );\r
\r
- pair && pair[ 'focus' ]();\r
+ pair && pair.page[ 'focus' ]();\r
return this;\r
}\r
}\r
//!X_UA[ 'Blink' ] &&
// Firefox40.0.5 + Windows8 で音声が途中から鳴らなくなる
// Firefox41.0.1 + Windows8 で音声が途中から鳴らなくなる
- !( 40 <= X_UA[ 'Gecko' ] && X_UA[ 'Gecko' ] < 44 && X_UA[ 'Windows' ] ) &&
+ !( 40 <= X_UA[ 'Gecko' ] && X_UA[ 'Gecko' ] < 45 && X_UA[ 'Windows' ] ) &&
( window[ 'AudioContext' ] || window[ 'webkitAudioContext' ] ),
X_WebAudio_BUFFER_LIST = [],
X_WebAudio_need1stTouch = X_UA[ 'iOS' ],
//case 'ratechange' : // defaultPlaybackRate属性とplaybackRate属性のどちらかが更新された場合に発生\r
//case 'volumechange' : // volume属性とmuted属性のどちらかが変化した場合に発生\r
break;\r
- \r
+\r
+ case 'seeking' : // シークがtrueに変化し、イベントを発生させるのに十分な時間がシーク操作にかかっている場合に発生\r
+ eventType = X_EVENT_MEDIA_SEEKING;\r
+ if( X_HTMLAudio_seekingFixIOS ) this._seekingFixON = true;\r
+ break; \r
case 'seeked' :\r
if( X_HTMLAudio_seekingFixIOS ) this._seekingFixON = false;\r
break;\r
case 'waiting' : // 次のフレームが利用不可のため再生を停止したが、そのフレームがやがて利用可能になると想定している場合に発生\r
eventType = X_EVENT_MEDIA_WAITING;\r
break;\r
- case 'seeking' : // シークがtrueに変化し、イベントを発生させるのに十分な時間がシーク操作にかかっている場合に発生\r
- eventType = X_EVENT_MEDIA_SEEKING;\r
- if( X_HTMLAudio_seekingFixIOS ) this._seekingFixON = true;\r
- break;\r
};\r
\r
// duration は Infinity, NaN, 0 の場合があるため、これを除外する\r