提到网页,大家首先想到的就是链接,也就是点击一下就能跳转到别处的功能。在WML里,这个功能同样靠 和 这对标签来实现。其中,href 属性是必填项,指定你要跳转到的地址。而可选的 title 属性,则是给这个链接起个名字,这个名字会显示在手机屏幕的软按钮区,通常对应着“确认”键。所以,你完全可以把 title 当作一个可见的提示文字来用。
不过,WML里的链接可不止这一种玩法。为了让开发者能实现更复杂的操作,WML还引入了一个新的标签:。实际上,前面提到的 标签,就是 搭配 任务时的一种简化写法,可以省去一些代码量。
来看一个实际的例子,文件名为 test3.wml,代码结构如下:
News
Sports
在这个例子中,“News”链接用 配合 实现,而“Sports”链接则直接用 标签,但两者最终效果是一样的。那么,WML里到底有哪些任务标签呢?它们除了用在 里,还可以应用在事件处理中。下面,我们逐个来看。
任务标签详解
1.
这个标签的作用很直接,就是让浏览器加载并显示一个指定的URL,可以是某个WML Deck(卡片组)的第一个卡片,也可以是其中的某个特定卡片。它的语法格式如下:
其中,href 是唯一必选的属性,其他都是可选项。这里有几个关键点需要留意:
- sendreferer:这个属性用来控制是否在HTTP请求头中附带上当前页面的URL(也就是HTTP_REFERER),默认值为
false,可选值为true。 - method:和HTML表单中的
method属性类似,用来指定数据是以get还是post方式提交给服务器端程序(如CGI)处理,默认是get。但有一点需要注意:如果你没有指定method,但标签内部包含了元素,那么手机浏览器会自动采用post方式传递数据。 - accept-charset:这个属性可以覆盖HTTP头中指定的字符集,你可以指定多个字符集,比如
accept-charset="UTF-8,US-ASCII, ISO-8859-1"。 :可以把它看作是HTML表单中的 ,通过它,你可以向目标URL提交“变量名/值”形式的数据。它的name和value属性都是必填的。注意,这里的变量才是真正用来提交给CGI程序的。:在 标签内部,还可以包含一个或多个语句,它的作用是:当触发某个事件(比如点击这个链接)时,给WML页面中的变量赋值。
特别提一下,如果 和 之间没有任何子标签,那么必须使用 这种自闭合写法,比如上面例子中的 。
2.
这个标签的作用是,将当前页面的URL压入历史堆栈,然后跳转到之前访问过的那个URL。如果历史堆栈为空,那么 将不起任何作用。它的语法和 类似:
同样,在 和 之间可以包含一个或多个 语句,如果没有,则必须写成 的形式。
3.
这个标签用来刷新当前页面,主要目的是让页面内的变量值得到更新,语法为:
4.
这个标签表示“什么都不做”,它不能用在 标签中,通常用于在卡片级别(Deck level)覆盖 元素(关于 我们以后再聊)时,用来取消某个默认行为。