wml基础
首次整理于2010-3-3
1、wml文件命名
*.wml
2、wml基本格式
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
eg: 一个简单wap页面所需要的元素index.wml
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <head> <access /> <meta /> </head> <card id="index" title="hello wap1.x"> <p> hello wap1.x</p> </card> </wml>
1. 文件大小最好不要超过1.2k
2. <head></head>之间可以包含一个<access />和多个<meta />
3、wml标签
3.1、<card />标签
属性 | 含义 |
id | card名字,可用来在card间跳转。相当于HTML的<a name="" /> |
title | 书签标记 |
newcontext | 默认false.用来表示当跳转本card时,手机是否清除以前保留的信息,包括变量,堆栈历史信息,重新设置手机状态等 |
ordered |
默认true,表明该card里的内容可以按一定的顺序显示,默认是按线性顺序显示(即按代码顺序)。 当ordered设置为true时,如果一个表单的内容不能在一屏里显示完,就分成多屏显示; 当ordered设置为false时,手机可以显示一个概要CARD来总结有效的选项 ,用户可以从中选取表单选项来填写 |
on*** |
类似于HTML标签中的onXXX属性,用来捕捉事件,当事件被触发时执行指定的操作(任务)。 eg:onenterforward="url" onenterbackward="url" ontimer="url" |
3.2、<input />标签
属性 | 含义 | ||||||||||||||||
name | 输入文本变量名 | ||||||||||||||||
title | 输入框名字 | ||||||||||||||||
type | 输入框类型,默认text.可选择text/password | ||||||||||||||||
value | 输入框的值 | ||||||||||||||||
default | 输入框的默认值 | ||||||||||||||||
format |
格式化输入数据。可用“一位数字+标记”和“*+标记”的形式。前者表示N个标记型字符
eg: 2N:两位数字;12N:十二位数字;*N:N位长度的数字 |
||||||||||||||||
maxlength | 最大输入长度 | ||||||||||||||||
emptyok | 是否必填true/false。默认false |
3.3、<p />标签
<p></p>用来显示文本
属性 | 含义 |
align | 显示文本对齐方式 left|right|center |
mode | 是否自动换行。默认wrap warp|nowrap |
maxlength | 最大输入长度 |
3.4、<img />标签
显示图片
属性 | 含义 |
alt | 手机不支持图片时显示的文字 |
src | 图片地址,如果有localsrc时就忽略该属性 |
localsrc | 指定显示存在在手机ROM中的图标,如果找不到则到UP.Link Server上去找。 |
其他 | 除外还有一些height\width\vspace\hspace属性。 |
注:<img>要放在<p>里,不能放在<do/>和<option/>等功能键标签和选单标签里.
3.5、<anchor />标签
1. 一般的链接:<a href='url' title='title'>url..</a>
2. 锚:<anchor title='label'> 任务标签 </anchor> <a />其实是当任务标签为<go />时的简单表示
3.6、<go />标签
<go />标签类似HTML中的<from/>标签,使用如下:
<go href='login.wml' method='get|post' sendreferer="false|true" accept-charset="charset"> <postfield name='name' value='value' /> <setvar name='name' value='value' /> </go>
1. sendreferer属性表示是否传递调用href所指定的URL的页面的URL,也就是当前页的URL,即 HTTP 头中的HTTP_REFERER,默认值为false,可选值为true
2. 未指定method但<go></go>间存在<postfield>,手机自动以post方式传递
3. accept-charset 属性可覆盖在HTTP头里指定的字符集,可以写多个字符集,如accept-charset="UTF-8,US-ASCII, ISO-8859-1"
4. <postfield name="name" value="value"/>可以看作是HTML表单FORM中的<INPUT TYPE="HIDDEN" NAME="变量名" VALUE="值">,通过它可以向指定的URL传递以“变量名/值”形式的数据。name和value属性都是必选的。注意只有这里的变量是用来递交给CGI程序的
5. 除了<postfield>,还可以在<go>和</go>间加入一句或者多句<setvar name="name" value="value"/>,该语句的意思是,当触发某一事件时,给变量赋值
3.7、<prev />标签
1. <prev>用来将当前页面的URL压入URL历史堆栈,并打开此前的URL,若该URL不存在,则<prev>无效。
2. 语法类似<go>:<prev><setvar name="name" value="value"/></prev>,<prev>和</prev>之间可加入一句或多句<setvar name="name" value="value"/>,若不加,则必须变成<prev/>的形式
3.8、<refresh />标签
1. <refresh>用来刷新当前的页面,从而使得页面内的变量刷新
2. 语法为<refresh><setvar name="name" value="value"/></refresh>
3.9、<do />标签
处理键盘(包括软硬按钮)输入事件
<do>的语法如下:<do type="type" label="label" name="name" optional="false|true">任务</do>,任务就是以前提到的四种任务。<do>的属性中,type是必选的,其他为可选。
属性 | 含义 | ||||||||||||||||||||
*label | 指定了软按钮在屏幕上的显示文本。目前type属性为delete,help,prev时该属性无效 | ||||||||||||||||||||
name |
为<do>取个名字,同一的CARD里的<do>不能重名。 如果CARD级的<do>和DECK级的<do>同名,则覆盖DECK级的<do>。 |
||||||||||||||||||||
optional | 指定手机是不是可以忽略这个事件,默认值是false。 | ||||||||||||||||||||
type |
指定触发的事件,具体如下:
|
3.10、<onenvent />标签
<onevent>的语法如下:
<onevent type="type">任务</onevent>
必选属性type的取值如下:
type值 | 如果用户执行了以下操作就执行任务 |
onpick | 用户选择或不选一个<option>项时 |
onenterforward | 用户使用<go>任务到达一个CARD时 |
onenterbackward | 用户使用<prev>任务返回到前面的CARD时,或者按BACK按钮时 |
ontimer | 当<timer>过期时。 |
3.11、其他标签
1. <br /> 换行标签:在表单中如果有多个<input>或者<select>,其间不要用<br/>,否则会使手机浏览器认为是断点而把表单分页显示
2. <b/><i/><u/><em/><strong/><big/><samll/><table/>同HTML标签