CMUI / gearbox

Lightweight JavaScript utilities for web development, based on `_` and `$`.
MIT License
16 stars 2 forks source link

API 文档 - `url` 模块 #6

Open cssmagic opened 9 years ago

cssmagic commented 9 years ago

API 文档 - url 模块

术语  

Query String

举例来说,http://domain.com/path/file?foo&bar=2 中的 foo&bar=2 部分即为 query string。

Query String 的本质是对一些名值对进行编码和序列化之后的结果。而 query string 的解析就是一个反序列化和解码的过程。

URL 参数

Query String 所保存的这些名值对即称作 “URL 参数”。

JavaScript 接口  

.parseQuery(queryString)  

把 query string 解析为以对象的方式保存的名值对。

参数

对象。解析结果,以名值对的方式保存。

示例

gearbox.url.parseQuery('foo=1&bar=2')  // => {foo: '1', bar: '2'}
gearbox.url.parseQuery('foo=&bar=2')  // => {foo: '', bar: '2'}
gearbox.url.parseQuery('foo&bar=2')  // => {foo: '', bar: '2'}
gearbox.url.parseQuery('')  // => {}

注意事项


.getParam(key)  

获取当前页面 URL 的某个 URL 参数的值。

参数

字符串或 undefined。对应 URL 参数的值。

示例

假设当前页面的 URL 为 http://domain.com/path/file?foo&bar=2,此时:

gearbox.url.getParam('foo')  // => ''
gearbox.url.getParam('bar')  // => '2'
gearbox.url.getParam('absentKey')  // => undefined

注意事项


.appendParam(url, param)  

为给定的 URL 附加新的参数。

参数

字符串。已附加 URL 参数的新的 URL。

示例

var url = 'http://domain.com/path/file'

url = gearbox.url.appendParam(url, {foo: 'bar'})
    // => 'http://domain.com/path/file?foo=bar'

url = gearbox.url.appendParam(url, {test: 1})
    // => 'http://domain.com/path/file?foo=bar&test=1'

注意事项


.removeHashFromUrl(url)  

把 URL 中的 hash 部分去除。

参数

字符串。去除 hash 之后的 URL。若未传入参数则返回空字符串。

示例

var url = 'http://domain.com/foo#bar'
gearbox.url.removeHashFromUrl(url)  // => 'http://domain.com/foo'

.getHashFromUrl(url)  

获取 URL 中的 hash 部分。获取结果包含开头的 # 字符。

如果需要得到当前页面 URL 的 hash 部分,直接使用 location.hash 即可。

参数

字符串。若传入的 URL 不包含 hash 部分则返回空字符串;若未传入参数则返回空字符串。

示例

var url = 'http://domain.com/foo#bar'
gearbox.url.getHashFromUrl(url)  // => '#bar'

别名  

.isHash()  

gearbox.str.isHash() 的别名。

.stripHash()  

gearbox.str.stripHash() 的别名。



暂未实现的接口 :warning:

.parse(url)  

别名.parseUrl()

此接口的行为与 Node.js 内置的 url 模块.parse() 接口的功能保持基本一致,但仍然有细微差异,详见 “注意事项” 部分。

解析 URL 的各个要素,解析结果以对象的方式输出。举例来说,当传入以下 URL 时:

'http://user:pass@domain.com:8080/path/file?query=string#hash'

解析结果中各个 key 的含义和值如下:

可以看出它们涵盖了 location 对象的各个 key,且含义相同。

参数

对象。整个 URL 的解析结果,URL 的各个要素部分以名值对的方式保存。

当参数不合法时,返回空对象({})。

注意事项


.format(parts)  

别名.composeUrl()

此接口的行为与 Node.js 内置的 url 模块的 .format() 接口的功能保持基本一致。

根据提供的 URL 各个要素,构造完整的 URL。URL 各个组成部分的名称及含义同 .parse() 接口的描述。

参数

字符串。构造出的完整 URL。

当参数不合法时,返回空字符串。

示例

var urlParts = {
    protocol: 'http:',
    host: 'domain.com',
    pathname: '/foo/bar'
}
gearbox.url.format(urlParts)  // => 'http://domain.com/foo/bar'

注意事项

cssmagic commented 9 years ago

与 Underscore.ext 的差异: