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个标记型字符


标记 描述
A 任意符号或者大写字母(不包含数字)
a 任意符号或者小写字母(不包含数字)
N 任何数字(不包括符号或者字母)
X 任何符号、数字或者大写字母(不可改变为小写字母)
x 任何符号、数字或者小写字母(不可改变为小写字母)
M 任何符号、数字或者大写字母(可改变为小写字母)或者多个字符,默认为首字大写
m 任何符号、数字或者小写字母(可改变为大写字母)或者多个字符,默认为首字小写

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

指定触发的事件,具体如下:


type值 触发原因
accept 调用ACCEPT按钮机制
delete 调用DELETE按钮机制
help 调用HELP按钮机制
options 调用选择按钮机制
prev 调用PREV按钮机制
reset 调用清除和重新设定手机状态时的RESET机制(目前不支持)
unknown 调用unknown机制,等于type=""(目前不支持)
vnd. co-type 调用厂商特定的机制(目前不支持)
X-*, x-* 供以后使用(不保留)(目前不支持)


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标签

你可能感兴趣的:(wml基础)