当前位置: 首页 > 工具软件 > wmlbrowser > 使用案例 >

WMLBrowser库及其函数 ,getVar函数 ,go函数 , prev函数 , newContext函数 等等

赖诚
2023-12-01

 

9.5  WMLBrowser库及其函数
WMLBrowser库提供了使用WMLScript操作WML卡片及WML浏览器的各种功能函数,这些函数为WMLScript和WML的结合使用提供了很好的支持。不过,如果所用系统不支持WML浏览器,或WMLScript的解释器不是由WML浏览器所激活的,那么WMLBrowser库的所有函数均不能进行有效的操作和处理,只能返回无效值invalid。

WMLBrowser库函数主要包括getCurrentCard、getVar、go、newContext、prev、refresh和setVar函数,下面我们就详细介绍这些函数的功能与用法。

9.5.1  getVar函数
getVar函数用于获取和返回给定变量名的变量值,该变量名由参数name给定,变量名必须遵循WML有关变量命名的语法和规定。如果参数指定的变量不存在,那么函数就会返回空字符串。getVar函数的语法格式如下:

WMLBrowser.getVar(name)

其中的参数name必须是字符串形式表示的变量名,变量值也将以字符串的形式返回。如果变量名的语法不正确,那么函数就会返回无效值invalid。

例如,在下面的几行程序中,变量name被赋值"Good!",所以当使用getVar函数测试它的变量值的时候,会得到"Good!"的结果。

 

var name = "Good!";

var a = WMLBrowser.getVar("name");                      // 返回变量name的值,故a = "Good!"

9.5.2  setVar函数
setVar函数的功能是,在当前浏览器运行的程序中,就给定两个参数name和value进行检验和操作,如果name参数代表的变量名确实存在,那么就将value参数代表的变量值赋给name参数代表的变量,然后返回true;否则,就不赋值,同时返回false。setVar函数的语法格式如下:

WMLBrowser.setVar(name, value)

其中参数name和value所代表的变量名及变量值都必须符合WML的语法规定,变量值必须是XML合法的CDATA型数据。如果给定的变量名不符合语法规定或者数值类型不正确,那么函数就会返回无效值invalid。

例如,当前浏览器运行的WML程序中,我们已经定义了name变量,即程序中确实存在该变量,所以当使用setVar函数进行检验和操作时,就会得到变量名为真(true)的判断,同时会把给定的参数值"Mary"赋给该变量:

var a = WMLBrowser.setVar("name", "Mary");                          // 返回结果为a = true

setVar函数赋值的条件是检验的变量名确实存在,而不管该变量是否已经赋值,也不管该变量参与何种运算;而且一旦赋值,该变量在程序以后的运行中均采用新赋的值进行操作或运算。

9.5.3  go函数
go函数用于装入由给定参数url所指定URL地址的内容。它的功能与WML语言的go任务的功能完全相同。该URL的装入是在WML浏览器接收到WMLScript解释器调用操作的结束信息后开始的,即先由WMLScript解释器调用执行当前的go函数,执行完后向WML浏览器发出信息,浏览器随后即装入go函数指定URL地址的内容。如果装入成功,则返回一个空字符串。如果给定的参数url是个空字符串,那么浏览器将无法装入指定内容,同时也返回一个空字符串。go函数的语法格式如下:

WMLBrowser.go(url)

其中的参数url需取字符串形式的URL地址。如果给定的URL地址不合法,则go函数就会返回无效值invalid。例如,下面的例子即可使用go函数装入指定URL地址http://www.host.com/loc/app.dck#start的内容:

 

var card = "http://www.host.com/loc/app.dck#start";

WMLBrowser.go(card);

9.5.4  prev函数
prev函数的功能是在当前程序执行的过程中,使WML浏览器返回到显示的上一个卡片的内容,它与WML语言的prev任务具有相同的功能。这里的卡片装入也是在WML浏览器接收到WMLScript解释器调用操作的结束信息后开始的,即先由WMLScript解释器调用执行当前的prev函数,执行完后向WML浏览器发出信息,浏览器随后装入prev函数所指定的上一卡片的内容。prev函数的语法格式为:

WMLBrowser.prev( )

它没有参数,但它有明确的操作对象,即WML浏览器显示的上一个卡片。与go函数一样,如果装入成功,prev函数也返回一个空字符串。如果WML浏览器前面还没有显示过卡片,即上一卡片的URL地址为空,那么浏览器将不执行prev函数的操作,也不试着装入上一卡片的内容,同时返回一个空字符串。

其实,prev函数和go函数的调用是相互覆盖的,它们可以在程序将控制权返回给浏览器之前反复地调用、装入指定URL地址的内容,go函数往前调用,而prev函数往后调用。

9.5.5  newContext函数
这是一个比较简单的函数,它的功能是清理当前WML浏览器中的内容并返回空字符串,与WML语言的Newcontext属性具有相同的功能。newContext函数的语法格式为:

WMLBrowser.newContext( )

如果当前WML的浏览器存在某些问题而无法清理,函数会返回无效值invalid。

例如,下面使用newContext函数的语句即可清理当前的WML浏览器内容:

WMLBrowser.newContext();

9.5.6  getCurrentCard函数
getCurrentCard函数的功能是获取并返回当前浏览器正在运行的卡片的最小的相对路径,其语法格式如下:

WMLBrowser.getCurrentCard( )

它没有参数,返回值为字符串形式的相对路径。不过,如果与当前路径对应的目录下没有当前卡片,函数会返回无效值invalid。

例如,假设当前WML浏览器中显示的是http://www.mywap.com/script/deck#input中的卡片,则使用newContext函数可以获得当前卡片的最小相对路径"deck#input":

var a = WMLBrowser.getCurrentCard( );                           // 返回结果为a = "deck#input"

9.5.7  refresh函数
refresh函数的功能是强制WML浏览器更新内容并返回空字符串。在这一点上它与WML语言的refresh任务的功能是完全相同的。其语法格式为:

WMLBrowser.refresh( )

它也没有参数,当函数生效时将返回一个空字符串,否则,如果浏览器内容无法更新或其中没有显示卡片,则会返回无效值invalid。

refresh函数的使用方法十分简单,下面的自定义函数中就利用了refresh函数进行浏览器内容的更新:

 

function convert2Peso( ) {

         var dollars = WMLBrowser.getVar("amount");

         var dol2peso = 10.2;

         var newAmt = dollars*dol2peso;

         WMLBrowser.setVar("amount", newAmt);

         WMLBrowser.refresh( );

}

 

9.6  Dialogs库及其函数
Dialogs库提供了3个用于用户交互界面操作与处理的功能函数,即prompt、confirm和alert,下面我们就讲解这3个函数的功能和用法。

 类似资料: