📄 wap初级教程(4)—桌面deck.htm
字号:
href="javascript:doZoom(14,17)">中</A> <A
href="javascript:doZoom(12,15)">小</A>】【<A
href="javascript:window.print()">打印</A>】【<A
href="javascript:window.close()">关闭窗口</A>】 </DIV></TD></TR>
<TR>
<TD vAlign=top align=middle height=80><FONT
color=#999999>日期:2004-08-02 人气:
<SCRIPT language=javascript
src="WAP初级教程(4)—桌面DECK.files/Read.php"></SCRIPT>
出处: </FONT><BR>
<TABLE borderColor=#ffffff cellSpacing=1 cellPadding=0 width=468
align=center border=0>
<TBODY>
<TR>
<TD>
<SCRIPT language=javascript
src="WAP初级教程(4)—桌面DECK.files/Banner_4.Js"></SCRIPT>
</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=article id=Zoom>
<TABLE class=bfont cellSpacing=2 cellPadding=2 width="92%"
align=center border=0>
<TBODY>
<TR>
<TD height=25>
<DIV align=center><SPAN style="LETTER-SPACING: 2pt"><A
name=6></A><SPAN style="LETTER-SPACING: 2pt"><SPAN
class=font>桌面 (DECK)</SPAN></SPAN> </SPAN></DIV></TD></TR>
<TR vAlign=top>
<TD height=1021>
<TABLE class=bfont cellSpacing=0 borderColorDark=#ffffff
cellPadding=3 width="100%" borderColorLight=#808080
border=1><TBODY>
<TR>
<TD width="24%"><SPAN class=size>· <A
href="http://www.7880.com/Info/Article-14f4fd80.html#1">XML说明</A></SPAN></TD>
<TD width="27%"><SPAN class=size>· <A
href="http://www.7880.com/Info/Article-14f4fd80.html#2"><wml></A></SPAN></TD>
<TD width="22%"><SPAN class=size>· </SPAN><A
href="http://www.7880.com/Info/Article-14f4fd80.html#3"><head></A></TD>
<TD width="27%"><SPAN class=size>· <A
href="http://www.7880.com/Info/Article-14f4fd80.html#4"><template></A></SPAN></TD></TR>
<TR>
<TD width="24%"><SPAN class=size>· <A
href="http://www.7880.com/Info/Article-14f4fd80.html#5"><card></A>
</SPAN></TD>
<TD width="27%"><SPAN class=size>· </SPAN><SPAN
class=size9><SPAN class=size><A
href="http://www.7880.com/Info/Article-14f4fd80.html#7">不同浏览器指标</A></SPAN></SPAN></TD>
<TD width="22%"> </TD>
<TD width="27%"> </TD></TR></TBODY></TABLE><BR><SPAN
class=size>由于网络带宽以及某些WAP服务器DECK传输的限制,所以DECK越小越好,最好不要超过1.2K。如果你的需求很复杂,最好分成几个DECK来完成。
</SPAN>
<P>完整的WML文档结构如下:</P><SPAN class=size></SPAN><SPAN
class=size></SPAN>
<TABLE class=font cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR bgColor=#eeeeee>
<TD height=64><?xml version="1.0"?>
<BR><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML
1.1//EN" <BR>
"http://www.wapforum.org/DTD/wml_1.1.xml">
<BR><BR><wml> <BR> <head> <BR> . <BR> .
头信息......<BR> . <BR> </head> <BR>
<template><BR> .<BR> . 模板定义...... <BR> .
<BR> </template> <BR> <card><BR> .
<BR> . 内容......<BR> . <BR> </card><BR>
.<BR> . 其他card(可有可无)......<BR> .
<BR></wml></TD></TR></TBODY></TABLE><BR>XML说明 <SPAN
class=size><A
href="http://www.7880.com/Info/Article-14f4fd80.html#6">[TOP]</A></SPAN><A
href="http://www.7880.com/Info/Article-14f4fd80.html#5"
name=1> </A><BR>
<P>DECK开头必须指明以下的XML类型声明: </P>
<TABLE class=font cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR bgColor=#eeeeee>
<TD class=size height=19><?xml version="1.0"?>
<BR><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML
1.1//EN" <BR>
"http://www.wapforum.org/DTD/wml_1.1.xml"></TD></TR></TBODY></TABLE>
<P>第一行指出XML版本,紧跟的文档类型(DOCTYPE)声明指出所引用的语言标准定义(wml_1.1.xml的内容可以察看本教程附录中的<A
href="http://www.7880.com/Info/Article-14f4fd80.html?ReViewID=311">DTD</A>说明)。</P>
<P>这两句的位置和顺序不可更改,而且中间不能有空行。<BR></P><wml> <A
href="http://www.7880.com/Info/Article-14f4fd80.html#6">[TOP]</A><A
href="http://www.7880.com/Info/Article-14f4fd80.html#5"></A>
<A name=2></A><BR>语法:
<P><wml>标签和HTML中的<html>标签一样,用来表明这是一个WML的DECK。xml:lang属性来指定文档的语言,比如<wml
xml:lang="zh">表示文档语言为中文。<BR><BR><head> <SPAN
class=size><SPAN class=size><A
href="http://www.7880.com/Info/Article-14f4fd80.html#6">[TOP]</A></SPAN></SPAN>
<A name=3></A></P>
<P><head>标签包含了该DECK的相关信息。<head>标签之间可以包含一个<access>标签和多个<meta>标签。</P>
<P><access>语法:</P>
<TABLE class=font cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR bgColor=#eeeeee>
<TD><access <BR> domain="STRING" <BR>
path="STRING" /></TD></TR></TBODY></TABLE>
<P><access>相当于HTML中的<BASE>标签,指定该DECK的访问控制信息,它的两个属性是可选的。</P>
<P>domain:指定域,默认值为当前域。<BR>path:指定路径,默认值为"/",即根目录。</P>
<P><meta>语法: </P>
<TABLE class=font cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR bgColor=#eeeeee>
<TD><meta <BR> http-equiv="STRING" | name="STRING"
<BR> forua="true|false" <BR> content="STRING" <BR>
scheme="STRING" /></TD></TR></TBODY></TABLE>
<P>和HTML中<META>的类似,<meta>提供了该DECK的meta信息。<BR>包括一下三种情况<BR>name="name"
UP.Link Server忽略meta数据<BR> http-equiv="name" UP.Link
Server将meta数据转为HTTP响应头(同HTML) <BR> user-agent="agent"
UP.Link
Server直接将meta数据传给手机设备<BR><BR>content属性也是必选的,其内容根据属性而定。scheme属性目前尚不支持。forua为可选属性,指定在该wml文件传到客户端之前,<meta>标签是不是被中间代理删除(因为传输的协议可能改变),默认值为false。<BR></P>
<P>目前支持的meta数据: <BR> <meta http-equiv="Cache-Control"
content="max-age=3600"/>指定DECK在手机内存缓存中的存储时间段,默认的为30天(除非内存耗尽),在该期间,手机对于访问过的DECK直接从缓存里调用。如果信息是对时间敏感的,可以用max-age指定DECK在缓存里的生存期,最小单位是秒,如果指定为0,则每次都需通过连接服务器来调用该DECK。<BR><BR> <meta
user-agent="vnd.up.markable" content="false"/>和<meta
user-agent="vnd.up.bookmark"
content="指定的URL"/>类似于普通浏览器的书签功能。当用户将一个CARD做了书签后,手机浏览器首先用一个标记记录该CARD,这个标记默认的是<card>标签中的title属性(以后会讲到),然后当用户选择了该书签以后,浏览器就会打开被记录的URL。但是因为在默认的情况下,手机会记录所有的DECK,所以,一般<meta>被用来使手机不要记录当前的URL,即<meta
user-agent="vnd.up.markable"
content="false"/>。此外,如果要为书签指定不同于当前DRECk的URL,用<meta
user-agent="vnd.up.bookmark"
content="指定的URL"/>。<BR><BR><template> <A
href="http://www.7880.com/Info/Article-14f4fd80.html#6">[TOP]</A>
<A
name=4></A><BR><template>元素声明一个DECK级的事件/请求,对DECK页面中所有CARD有效,当然某个CARD可以通过定义同名的事件来替代<template>声明中的事件处理。
<P>语法: </P>
<TABLE class=font cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR bgColor=#eeeeee>
<TD height=21><template <BR>
onenterforward="STRING" <BR> onenterbackward="STRING"
<BR> ontimer="STRING" /></TD></TR></TBODY></TABLE>
<P>onenterforward:当用户通过<go>进入CARD时调入的链接。<BR>onenterbackward:当用户通过<prev>退回CARD时调入的链接。<BR>ontimer:<timer>事件激活时调入的链接。</P>
<P>例子(其中涉及的其他命令参考其他章节): </P>
<TABLE class=font cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR bgColor=#eeeeee>
<TD height=30><wml> <BR><template> <BR>
<do type="options" name="do1" label="default">
<BR> <prev/> <BR> </do>
<BR></template> <BR><card id="first"> <BR>
<!-该卡片将自动套用模块中定义的事件处理过程--><BR> … <BR>
</card> <BR><card id="second"> <BR>
<!-使用空操作(noop)来屏蔽模块中定义的事件处理过程-> <BR> <do
type="options" name="do1"> <BR> <noop/> <BR>
</do> <BR> … <BR></card> <BR><card
id="third"> <BR> <!-该卡片使用同名的事件处理替代模块中提供的事件处理->
<BR> <do type="options" name="do1"
label="options> <BR> <go href="/options"/>
<BR> </do> <BR></card>
<BR></wml></TD></TR></TBODY></TABLE>
<P>另外可以参看<A
href="http://www.7880.com/Info/Article-14f4fd80.html?ReViewID=300">事件(EVENT)</A>。<BR><BR><card>
<A
href="http://www.7880.com/Info/Article-14f4fd80.html#6">[TOP]</A><A
name=5></A><BR>一个DECK可以包含多个CARD,每个CARD的内容可能不止一屏显示,注意DECK、CARD和屏幕显示范围的关系。一个CARD用<card>和</card>包含。
</P>
<P>语法: </P>
<TABLE class=font cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR bgColor=#eeeeee>
<TD height=18><card<BR> id="STRING" <BR>
title="STRING" <BR> newcontext="true|false" <BR>
ordered="true|false" <BR> onenterforward="STRING" <BR>
onenterbackward="STRING" <BR> ontimer="STRING" <BR>
xml:lang="STRING"> </TD></TR></TBODY></TABLE>
<P>每个CARD元素可以有一个标号(ID)和标题(TITLE)。当然,这都不是必须的。</P>
<P>id:CARD的名字,在DECK中唯一,可用作URL已进行跳转。</P>
<P>title:CARD的标题,用户BOOKMARK一个CARD时的名字。该属性在某些用户终端上会显示出来。</P>
<P>newcontext:用来指示当跳转到本CARD时,用户终端(手机、模拟器等)是不是要清除以前保留的信息如变量、堆栈历史记录、终端状态等。默认值为FALSE。</P>
<P>ordered:表明该CARD里的内容是按固定的顺序显示,还是按用户的选择来显示。默认值是TRE。这点和HTML不同,CARD页面里的内容可以按一定的顺序显示,默认的是按线性顺序显示,即按代码的顺序,但是,要注意的是,以下三个标签必须按以下顺序来写<onevent> <timer> <do>,(这和以后要讲的“事件”有关)。这样做是为了方便填表单,当ordered设置为true时,如果一个表单的内容不能在一屏里显示完,就分成多屏显示;当ordered设置为false时,手机可以显示一个概要CARD来总结有效的选项,用户可以从中选取表单选项来填写。</P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -