电脑技术学习

WMLj脚本中的URL库和函数使用

dn001

WMLScript的URL库包含一系列与绝对URL地址和相对URL地址操作相关的函数,利用它们可以实现对外部文件、外部函数等外部资源的合法调用。URL库函数主要包括escapeString、getBase、getFragment、getHost、getScheme、getPath、getPort、getQuery、getReferer、getParameters、isValid、loadString、resolve和unescapeString,本节我们就讲解这些库函数的功能和用法。

9.4.1; isValid函数
isValid函数用于判断给定URL地址的格式是否正确。如果URL地址合法,则该函数会返回true,否则返回false。isValid函数可以判断绝对和相对URL地址的格式,判断时相对URL不必转化为绝对URL,而是可以直接判断。isValid函数的语法格式为:

URL.isValid(url)

它的参数url是字符串形式的URL地址,返回值为布尔型的true|false。如果给出的参数内容不符合要求,则isValid函数会返回无效值invalid。

WMLScript中合法的URL地址格式为:

<scheme>://<host>:<port>/<path>;<params>?<query>#<fragment>

凡不符合该格式的URL地址,isValid函数均会判断其为false或invalid。

下面我们给出使用isValid函数判断URL地址的几个例子:

var a = URL.isValid("http://w.acmhst.com/script#func( )"); // a = true

var b = URL.isValid("../common#test( )");;// b = true

var c = URL.isValid("experimental?://www.host.com/cont");;;;;// c = false

9.4.2; getScheme函数
getScheme函数用于寻找并返回给定URL地址中的Scheme部分。如果给定URL地址中没有Scheme部分,则该函数返回空字符串。如果给定的URL地址无效,则会返回invalid。getScheme函数也支持绝对和相对URL地址,操作时也不会把相对URL地址转化为绝对URL地址,而是可以直接操作。该函数的语法格式如下:

URL.getScheme(url)

它的参数url必须是字符串形式的URL地址。下面是使用getScheme函数的几个例子:

var a = URL.getScheme("http://w.h.com/path#frag");// a = "http"

var b = URL.getScheme("w.h.com/path#frag");;;// b = ""

var c = URL.getScheme("http://www.mywap.com/script#func( )");;// c = "http"

9.4.3; getHost函数
getHost函数用于获取并返回给定URL地址中的主机名,即Host部分。如果URL地址中没有给出主机名,则该函数返回空字符串。getHost函数也支持绝对和相对URL地址,操作时也不进行相对URL地址向绝对URL地址的转换。getHost函数的语法格式为:

URL.getHost(url)

它的参数url必须为字符串形式的URL地址,返回值为字符串型的主机名。如果getHost函数无法解析给出的URL地址,那么它将返回无效值invalid。

使用getHost函数的例子如下:

var a = URL.getHost("http://w.h.com/path#frag");;;;;// a = "w.h.com"

var b = URL.getHost("path#frag"); // b = ""

var c = URL.getHost("http://www.mywap.com/script#func( )") // c = "www.mywap.com"

9.4.4; getPort函数
getPort函数用于获取并返回给定URL地址中的通信端口号,即port部分。如果URL地址中没有给出端口号,则该函数返回空字符串。getPort函数也支持绝对和相对的URL地址,操作时无需转换相对URL地址为绝对URL地址。它的语法格式为:

URL.getPort(url)

它的参数url取值应为字符串形式的URL地址,函数返回值为字符串形式的端口号。如果URL地址中的端口号无法被getPort函数所解析,那么该函数就会返回无效值invalid。

getPort函数的使用十分简单,下述几条语句就是用它来获取端口号的例子:

var a = URL.getPort("http://w.h.com:80/path#frag");;;;;// a = "80"

var b = URL.getPort("http://www.mywap.com/path#frag")// b = ""

var c = URL.getPort("http://www.mywap.com:8080/script#func()");// c = "8080"

9.4.5; getPath函数
用于获取和返回给定URL地址中的路径(path)部分。如果URL地址中没有给出路径,那么该函数就会返回空字符串。getPath函数也支持绝对和相对的URL地址,操作时不必将相对URL地址转化为绝对URL地址。它的语法格式为:

URL.getPath(url)

它的参数url取值也应为字符串形式的URL地址,函数返回值为字符串形式的路径。如果getPath函数无法解析URL地址中的路径,那么就会返回无效值invalid。

var a = URL.getPath("http://www.mywap.com/home/sub/comp#frag");

// 返回的路径为a = "/home/sub/comp"

var b = URL.getPath("../home/sub/comp#frag"); // 返回的路径为b = "../home/sub/comp"

var c = URL.getPath("http://www.mywap.com:8080/program/WML/Script/script#func( )");

// 返回的路径为c = "/program/WML/Script/script"

9.4.6; getParameters函数
getParameters函数用于获取和返回给定URL地址中的参数部分,即params部分。如果URL地址中没有指定相关参数(params),那么函数就会返回空字符串。该函数也同时支持绝对和相对的URL地址,操作相对URL地址无需将它转化为绝对URL地址。getParameters函数的语法格式如下:

URL.getParameters(url)

它的参数url取值也应为字符串形式的URL地址,函数返回值为字符串形式的参数(params)。如果给定的URL地址无效,则getParameters函数返回无效值invalid。

作为举例,我们给出使用getParameters函数获取参数的例子:

var a = URL.getParameters("http://www.waphome.com/script;3;2?x=1&y=3");;;// a = "3;2"

var b = URL.getParameters("../script;3;2?x=1&y=3");;;;// b = "3;2"

var c = URL.getParameters("http://www.mywap.com:8080/script#func( )");// c = ""

9.4.7; getQuery函数
getQuery函数用于获取和返回给定URL地址中的query部分。如果URL地址中没有query部分,则函数返回空字符串。该函数也同时支持绝对和相对的URL地址,操作时相对URL地址不必转化为绝对URL地址。getQuery函数的语法格式为:

URL.getQuery(url)

它的参数url取值应为字符串形式的URL地址,函数返回值为字符串形式的query部分。如果给定的URL地址无效,则getQuery函数返回无效值invalid。

例如,下面就是使用getQuery函数的例子:

var a = URL.getQuery("http://www.waphome.com/script;3;2?x=1&y=3");// a = "x=1&y=3"

var b = URL.getQuery("../script;3;2?x=1&y=3");;// b = "x=1&y=3"

var c = URL.getQuery("http://www.mywap.com:8080/script#func( )") // c = ""