Uri

uri 解析模块.
KISSY.use('uri',function(S,Uri){
    // use Uri
});

Class

Class Detail

class uri.Uri
Uri (uriStr)
Parameters:uriStr (String) – uri 字符串

Methods Detail

Uri.prototype.clone()
clone ()
返回一个当前 uri 实例的克隆对象
Returns:{Uri}
Uri.prototype.resolve()
resolve (other)
以当前 uri 实例为基准路径解析 other uri 并返回新的实例
Param:{Uri|String} - other 带解析 uri
Returns:{Uri} - 新的 uri 实例

举例:

var one = new Uri('http://www.g.cn/x');
one.resolve('foo').toString() // => http://www.g.cn/foo
one.resolve(new Uri('?foo')).toString() // => http://www.g.cn/x?foo
Uri.prototype.getScheme()
getScheme ()
得到 uri 实例的 scheme 部分
Returns:{String}

举例:

new Uri('http://www.g.cn/x').getScheme() // => http
Uri.prototype.setScheme()
setScheme (scheme)
设置 uri 实例的 scheme 部分
Returns:当前 uri 实例

举例:

new Uri('http://www.g.cn/x').setScheme('ftp').getScheme() // => ftp
Uri.prototype.getHostname()
getHostname ()
得到当前 uri 实例的 hostname
Returns:{String}

举例:

new Uri('http://www.g.cn:8888/x').getHostname() // => www.g.cn
Uri.prototype.setHostname()
setHostname (hostname)
设置当前 uri 实例的 hostname
Parameters:hostname ({String}) –
Returns:当前实例

举例:

new Uri('http://www.g.cn:8888/x').setHostname('www.google.com').toString()
// => http://www.google.com:8888/x
Uri.prototype.getUserInfo()
getUserInfo ()
获取当前 uri 实例的 user info
Returns:{String}

举例:

new Uri('http://my:pass@www.g.cn:8888/x').getUserInfo() // => 'my:pass'
Uri.prototype.setUserInfo()
setUserInfo (userInfo)
设置当前 uri 实例的 user info
Parameters:userInfo ({String}) –
Returns:当前 uri 实例

举例:

new Uri('http://my:pass@www.g.cn:8888/x').setUserInfo('m:p').getUserInfo()
// => 'm:p'
Uri.prototype.getPort()
getPort ()
获取当前 uri 实例的端口值
Returns:{String}

举例:

new Uri('http://my:pass@www.g.cn:8888/x').getPort()
// => '8888'
Uri.prototype.setPort()
setPort (port)
设置当前 uri 实例的端口值
Parameters:port ({String}) –
Returns:当前实例

举例:

new Uri('http://my:pass@www.g.cn:8888/x').setPort('88').toString()
// => http://my:pass@www.g.cn:88/x
Uri.prototype.getPath()
getPath ()
获取当前 uri 实例的路径
Returns:{String}

举例:

new Uri('http://www.g.cn/x').getPath()
// => /x
Uri.prototype.setPath()
setPath (path)
设置当前 uri 实例的路径
Parameters:path ({String}) –
Returns:{String}

举例:

new Uri('http://www.g.cn/x').setPath('/y').toString()
// => http://www.g.cn/y
Uri.prototype.getQuery()
getQuery ()
获取当前 uri 实例的查询参数实例
Returns:{Uri.Query}

举例:

new Uri('http://www.g.cn/x?x=1').getQuery().get('x')
// => 1
Uri.prototype.setQuery()
setQuery (query)
设置当前 uri 实例的查询参数
Parameters:query ({String|Uri.Query}) –
Returns:{Uri.Query}

举例:

new Uri('http://www.g.cn/x?x=1').setQuery('y=1').toString();
// => http://www.g.cn/x?y=1

new Uri('http://www.g.cn/x?x=1').setQuery(new Uri.Query('y=1')).toString();
// => http://www.g.cn/x?y=1
Uri.prototype.getFragment()
getFragment ()
获取当前 uri 实例的 hash
Returns:{String}

举例:

new Uri('http://www.g.cn/x?x=1#y=2').getFragment() // => y=2
Uri.prototype.setFragment()
setFragment (hash)
设置当前 uri 实例的 hash
Parameters:hash ({String}) –
Returns:{String}

举例:

new Uri('http://www.g.cn/x?x=1#y=2').setFragment('x=3').toString()
// => http://www.g.cn/x?x=1#x=3
Uri.prototype.isSameOriginAs()
isSameOriginAs (other)
验证当前 uri 实例和 other 是否是同源关系(hostname port scheme 相同)
Returns:{Boolean}

举例:

new Uri('http://www.g.cn/x?x=1#y=2')
.isSameOriginAs(new Uri('http://www.g.cn:88/x?x=1#y=2')) // => false
Uri.prototype.toString()
toString (arr)
序列化当前 uri 实例的 hash
Parameters:arr ({Boolean}) – 同 param() 同名参数
Returns:{String}

举例:

new Uri('http://www.g.cn/x?x=1&x=2').toString(false)
// => 'http://www.g.cn/x?x=1&x=2'

new Uri('http://www.g.cn/x?x=1&x=2').toString(true)
// => 'http://www.g.cn/x?x%5b%5d=1&x%5b%5d=2'