Pot.js で利用可能。 PotLite.js では利用できません。
URI を組み立てます。
引数 url を文字列で指定すると、引数 query を queryString とみなして組み立てます。
その際に、query が指定されていた場合、Pot.URI.urlEncode によってエンコードされます。
引数 query は、文字列またはオブジェクト、items 形式の配列が指定できます。
引数 url がオブジェクトで指定された場合、
各キー名は Pot.parseURI の結果のキー名と同じ指定ができます。
その際に キー名 'query' はオブジェクトで指定することができます。
Pot.globalize() が適応されている場合、Pot.buildURI() が buildURI() で実行できます。
組み立てた URI 文字列が返ります。
var url = 'http://www.example.com/'; var params = { foo : '{foo}', bar : '{bar}' }; var result = Pot.buildURI(url, params); Pot.debug(result); // 'http://www.example.com/?foo=%7Bfoo%7D&bar=%7Bbar%7D'
var url = 'http://www.example.com/test?a=1'; var params = [ ['prototype', '{foo}'], ['__iterator__', '{bar}'], ]; var result = Pot.buildURI(url, params); Pot.debug(result); // 'http://www.example.com/test?a=1&prototype=%7Bfoo%7D&__iterator__=%7Bbar%7D'
var url = 'http://www.example.com/test?a=1'; var params = 'b=2&c=3'; var result = Pot.buildURI(url, params); Pot.debug(result); // 'http://www.example.com/test?a=1&b=2&c=3'
var parts = { protocol : 'http:', username : 'user', password : 'pass', hostname : 'www.example.com', port : 8000, pathname : '/path/to/file.ext', query : { arg1 : 'v1', arg2 : 'v#2' }, hash : 'a' }; var result = Pot.buildURI(parts); Pot.debug(result); // 'http://user:pass@www.example.com:8000/path/to/file.ext?arg1=v1&arg2=v%232#a'
var uri = 'http://user:pass@host:8000/path/to/file.ext?arg=value#fragment'; var parts = Pot.parseURI(uri); var result = Pot.buildURI(parts); Pot.debug(result); // 'http://user:pass@host:8000/path/to/file.ext?arg=value#fragment'
var parts = { protocol : 'file:', pathname : 'C:\\path\\to\\file.ext', query : { arg1 : 'value#1', arg2 : 'value#2' }, hash : '#fragment' }; var result = Pot.buildURI(parts); Pot.debug(result); // 'file:///C:\\path\\to\\file.ext?arg1=value%231&arg2=value%232#fragment'