• R/O
  • HTTP
  • SSH
  • HTTPS

clientJs: コミット

クライアント側 js 開発用


コミットメタ情報

リビジョン9e607206c5510435fc1daeac93a19427ce33cc6f (tree)
日時2016-10-26 13:41:32
作者itozyun <itozyun@user...>
コミッターitozyun

ログメッセージ

Version 0.6.219, Fix the bug of X.Net.

変更サマリ

差分

--- a/0.6.x/js/01_core/13_XClass.js
+++ b/0.6.x/js/01_core/13_XClass.js
@@ -304,6 +304,7 @@ X_Class_CommonMethods =
304304 // TODO instanceof に対応したブラウザはそちらを使用
305305 'instanceOf' : function( klass ){
306306 var Super = this;
307+
307308 if( this.constructor === klass ) return true;
308309 while( Super = X_Class_getClassDef( Super ).SuperClass ){
309310 if( Super === klass ) return true;
--- a/0.6.x/js/02_dom/08_XNodeSelector.js
+++ b/0.6.x/js/02_dom/08_XNodeSelector.js
@@ -253,7 +253,7 @@ function X_Node_Selector__parse( query, last ){
253253 */
254254 function X_Node_find( queryString ){
255255 var HTML = X_Node_html,
256- scope = this.constructor === X_NodeList && this.length ? this : [ this.constructor === Node ? this : X_Node_body ],
256+ scope = this.constructor === X_NodeList && this.length ? this : [ this.constructor === Node || this[ 'instanceOf' ] && this[ 'instanceOf' ]( Node ) ? this : X_Node_body ],
257257 parents = scope, // 探索元の親要素 XNodeList の場合あり
258258 // TODO { title : true,,, }
259259 noLower = 'title id name class for action archive background cite classid codebase data href longdesc profile src usemap',// + X_Dom_DTD_ATTR_VAL_IS_URI.join( ' ' ),
--- a/0.6.x/js/02_dom/20_XNode.js
+++ b/0.6.x/js/02_dom/20_XNode.js
@@ -155,7 +155,8 @@ var Node = X[ 'Node' ] = X_EventDispatcher[ 'inherits' ](
155155 var uid = X_Node_CHASHE.length,
156156 css, xnodes, xnode, parent;
157157
158- if( X_Node_newByTag ){
158+ // TODO 継承クラスで this.Super('DIV') ができない! -> サブクラスから呼ばれた場合も
159+ if( X_Node_newByTag || this.constructor !== Node ){
159160 X_Node_newByTag = false;
160161 this[ '_tag' ] = v.toUpperCase();
161162 arguments[ 1 ] && this[ 'attr' ]( arguments[ 1 ] );
@@ -223,6 +224,7 @@ var Node = X[ 'Node' ] = X_EventDispatcher[ 'inherits' ](
223224 X_Node_CHASHE[ this[ '_uid' ] = uid ] = this;
224225 },
225226
227+ // TODO .mesure() -> X.Event.MESURED
226228 'width' : X_Node_width,
227229 'height' : X_Node_height,
228230 'clientWidth' : X_Node_clientWidth,
@@ -362,6 +364,7 @@ function X_Node_getType( v ){
362364 if( X_Type_isString( v ) ){
363365 return '<' === v.charAt( 0 ) && v.charAt( v.length - 1 ) === '>' ? X_NodeType_HTML_STRING : X_NodeType_STRING;
364366 };
367+ // Node サブクラスのインスタンス
365368 if( v[ 'instanceOf' ] && v[ 'instanceOf' ]( Node ) ) return X_NodeType_XNODE;
366369 return 0;
367370 };
--- a/0.6.x/js/06_net/01_XNetXHR.js
+++ b/0.6.x/js/06_net/01_XNetXHR.js
@@ -171,7 +171,7 @@ if( X_XHR_w3c || X_XHR_msXML ){
171171 postdata = obj[ 'postdata' ] || '',
172172 timeout = obj[ 'timeout' ] || 20000,
173173 noCache = obj[ 'cache' ] !== true,
174- dataType = X_XHR._dataType = obj[ 'dataType' ], // ext が入っている
174+ dataType = X_XHR._dataType = obj[ 'dataType' ], // 明示され無い場合、ext が入っている
175175 xDomain = !X_URL_isSameDomain( url ),
176176 isFile = X_URL_isLocal( url ),
177177 init,
@@ -210,13 +210,15 @@ if( X_XHR_w3c || X_XHR_msXML ){
210210 raw.responseType = X_XHR._dataType = 'text';
211211 break;
212212 case 'json' : // firefox9- は moz-json
213- raw.responseType = X_XHR._dataType = X_UA[ 'Gecko' ] < 10 ? 'moz-json' : X_UA[ 'Gecko' ] ? dataType : ''; // Iron 37 でエラー
213+ raw.responseType = X_UA[ 'Gecko' ] < 10 ? 'moz-json' : X_UA[ 'Gecko' ] ? dataType : ''; // Iron 37 でエラー
214+ //X_XHR._dataType = 'json';
214215 break;
215216 case 'document' :
216217 case 'xml' :
217218 case 'html' :
218219 case 'htm' :
219- // svg
220+ case 'svg' :
221+ case 'vml' :
220222 raw.responseType = X_XHR._dataType = 'document';
221223 break;
222224 case 'blob' :
@@ -230,24 +232,27 @@ if( X_XHR_w3c || X_XHR_msXML ){
230232 // http://www.quirksmode.org/blog/archives/2005/09/xmlhttp_notes_r_1.html
231233 if( !X_XHR._isMsXML && raw.overrideMimeType ){
232234 switch( type = dataType ){
235+ case 'document' :
236+ case 'xml' :
233237 case 'html' :
234238 case 'htm' :
235- case 'xml' :
239+ case 'svg' :
240+ case 'vml' :
236241 tmp = 'text/xml';
237242 break;
238243 case 'json' :
239244 tmp = 'application/json';
240245 break;
241246 case 'mp3' :
242- type = 'mpeg';
247+ tmp = 'mpeg';
243248 case 'weba' :
244- type = type || 'webm';
249+ tmp = tmp || 'webm';
245250 case 'opus' :
246- type = type || 'ogg';
251+ tmp = tmp || 'ogg';
247252 case 'ogg' :
248253 case 'wav' :
249254 case 'aac' :
250- tmp = 'audio/' + type;
255+ tmp = 'audio/' + ( tmp || type );
251256 break;
252257 case 'm4a' :
253258 case 'mp4' :
@@ -263,7 +268,7 @@ if( X_XHR_w3c || X_XHR_msXML ){
263268 break;
264269
265270 };
266- if( tmp = obj[ 'mimeType' ] || tmp ) raw.overrideMimeType( tmp );
271+ if( obj[ 'mimeType' ] || tmp ) raw.overrideMimeType( obj[ 'mimeType' ] || tmp );
267272 };
268273
269274 if( !X_XHR._isXDR && ( X_XHR._isMsXML ? 3 <= X_XHR_msXMLVer : raw.setRequestHeader ) ){ // msxml は setRequestHeader getter がいけない
@@ -274,11 +279,10 @@ if( X_XHR_w3c || X_XHR_msXML ){
274279 headers[ 'Cache-Control' ] = 'no-cache';
275280 headers[ 'If-Modified-Since' ] = 'Thu, 01 Jun 1970 00:00:00 GMT';
276281 } */
277-
278- // http://nakigao.sitemix.jp/blog/?p=2040
279- // json 取得時に SafariでHTTP/412のエラー。但し相手が audio の場合この指定があるとロードに失敗する。 iOS8.2, iOS7.1 では遭遇せず
280- if( dataType === 'json' ){
281- headers[ 'If-Modified-Since' ] = ( new Date ).toUTCString();
282+
283+ // http://8note.phpapps.jp/jquery-ajax%E3%81%A7%E3%81%AE412%E3%82%A8%E3%83%A9%E3%83%BC/
284+ if( dataType === 'json' && X_UA[ 'Safari' ] ){
285+ headers[ 'If-Modified-Since' ] = 'Thu, 01 Jun 1970 00:00:00 GMT';
282286 };
283287
284288 // http://boscono.hatenablog.com/entry/2013/12/23/152851
@@ -477,7 +481,6 @@ if( X_XHR_w3c || X_XHR_msXML ){
477481 data = X_Script_try( X_Object_find, [ raw, 'responseText' ] );
478482 break;
479483 case 'json' :
480- case 'moz-json' :
481484 data = X_Script_try( X_Object_find, [ raw, 'response' ] ) || X_Script_try( X_Object_find, [ raw, 'responseText' ] );
482485 // eval() を使っているけど JSON の無いブラウザは XDomain な XHR はできないのでよしとする。
483486 // XDomain な XHR の際は Flash 等で代替し、その中に Json parser も組み込む。
旧リポジトリブラウザで表示