OSDN Git Service

Version 0.6.132, fix X.Node._flags & fix X.EventDispatcher._listeners & start to...
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 06_XURL.js
index d12b293..091e3cf 100644 (file)
@@ -13,11 +13,39 @@ var X_URL_BASE_URL = ( function( parts ){
        \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 = ( function( search ){\r
+               var str   = search.slice( 1 ),\r
+                       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
+       } )( location.search );\r
 \r
 // ------------------------------------------------------------------------- //\r
 // --- interface ----------------------------------------------------------- //\r
 // ------------------------------------------------------------------------- //\r
+\r
+/**\r
+ * @namespace X.URL\r
+ * @alias X.URL\r
+ */\r
 X.URL = {\r
 \r
        BASE_URL : X_URL_BASE_URL,\r
@@ -26,11 +54,15 @@ X.URL = {
        \r
        IS_LOCAL : X_URL_IS_LOCAL,\r
        \r
+       PARAMS   : X_URL_PARAMS,\r
+       \r
        toAbsolutePath : X_URL_toAbsolutePath,\r
        \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 +106,8 @@ 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