OSDN Git Service

Version 0.6.145, fix X.Audio, fix VIEW_ACTIVATE Event @X.ViewPort.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 06_XURL.js
index 4bf0277..7d395f4 100644 (file)
@@ -9,28 +9,39 @@ var X_URL_BASE_URL = ( function( parts ){
                        --parts.length;\r
                };\r
                return parts.join( '/' );\r
-       })( location.href.split( '?' )[ 0 ].split( '#' )[ 0 ].split( '/' ) ),\r
+       })( X_URL_cleanup( location.href ).split( '/' ) ),\r
        \r
        X_URL_IS_FILE  = location.protocol === 'file:',\r
        \r
-       X_URL_IS_LOCAL = X_URL_IS_FILE || location.hostname === 'localhost' || location.hostname === '127.0.0.1';\r
+       X_URL_IS_LOCAL = X_URL_IS_FILE || location.hostname === 'localhost' || location.hostname === '127.0.0.1',\r
+       \r
+       X_URL_PARAMS = X_URL_ParamToObj( location.search.slice( 1 ) );\r
 \r
 // ------------------------------------------------------------------------- //\r
 // --- interface ----------------------------------------------------------- //\r
 // ------------------------------------------------------------------------- //\r
-X.URL = {\r
 \r
-       BASE_URL : X_URL_BASE_URL,\r
+/**\r
+ * @namespace X.URL\r
+ * @alias X.URL\r
+ */\r
+X[ 'URL' ] = {\r
+\r
+       'BASE_URL'       : X_URL_BASE_URL,\r
+       \r
+       'IS_FILE'        : X_URL_IS_FILE,\r
        \r
-       IS_FILE  : X_URL_IS_FILE,\r
+       'IS_LOCAL'       : X_URL_IS_LOCAL,\r
        \r
-       IS_LOCAL : X_URL_IS_LOCAL,\r
+       'PARAMS'         : X_URL_PARAMS,\r
        \r
-       toAbsolutePath : X_URL_toAbsolutePath,\r
+       'toAbsolutePath' : X_URL_toAbsolutePath,\r
        \r
-       isSameDomain   : X_URL_isSameDomain,\r
+       'isSameDomain'   : X_URL_isSameDomain,\r
        \r
-       cleanup        : X_URL_cleanup\r
+       'cleanup'        : X_URL_cleanup,\r
+       \r
+       'getEXT'         : X_URL_getEXT\r
 };\r
 \r
 // ------------------------------------------------------------------------- //\r
@@ -74,3 +85,40 @@ function X_URL_cleanup( path ){
        return path.split( '?' )[ 0 ].split( '#' )[ 0 ];\r
 };\r
 \r
+function X_URL_getEXT( path ){\r
+       path = X_URL_cleanup( path ).split( '.' );\r
+       return path.length ? path.pop() : '';\r
+};\r
+\r
+function X_URL_objToParam( data ){\r
+       var result = [], k, n = -1;\r
+       for( k in data ){\r
+               if( n !== -1 ) result[ ++n ] = '&';\r
+               result[ ++n ] = k;\r
+               result[ ++n ] = '=';\r
+               result[ ++n ] = encodeURIComponent( data[ k ] );\r
+       }\r
+       return result.join( '' );\r
+};\r
+\r
+function X_URL_ParamToObj( str ){\r
+       var parts = str.split( '&' ),\r
+               i     = 0,\r
+               l     = parts.length,\r
+               obj   = {},\r
+               pair, p;\r
+\r
+       if( !str ) return obj;\r
+       \r
+       for( ; i < l; ++i ){\r
+               pair = parts[ i ];\r
+               p    = pair.indexOf( '=' );\r
+               if( p === -1 ){\r
+                       obj[ decodeURIComponent( pair ) ] = true;\r
+               } else {\r
+                       obj[ decodeURIComponent( pair.substr( 0, p ) ) ] = X_String_parse( decodeURIComponent( pair.substr( p + 1 ) ) );\r
+               };\r
+       };\r
+\r
+       return obj;     \r
+};\r