ddc
联网
平面设计 画册 VI欣赏 包装 CG-插画 搜索 个人网页 Alexa排名 CSS 建站资源 下载专区 JS特效 品牌服装 服装院校 专题欣赏 SEO 图标欣赏 专题
上海网站建设 网站建设 域名注册 虚拟主机 广州网站设计 域名注册 广州网站建设 上海网站建设 虚拟主机 广州网页设计 虚拟主机 域名注册 acg ACG玩家 品牌设计
求创科技
网站建设
中国互联
投稿
素材出售
中国设计秀
中资源
当前位置:网络学院首页 >> 设计教程 >> WAP网站攻略 >> WAP常见问题问答大全

WAP常见问题问答大全 (4)

来源:中国设计秀    作者:    点击:756     加入收藏    发表评论
0
顶一下

11. WML的一般语法是什么?

    WML非常像XML。和HTML相比其语法规则更加严格,从而保证当微型浏览器解析和解释的时候不会有太多的错误信息。
   
HTML一样,WML使用“<”“>”组成的格式化标签。许多标签都是以<tag>开头,以</tag>结尾。在开头或者结尾中包含的部分叫做元素。有些标签叫做空元素,只有标签,没有内容,如:<tag/>
   
许多元素有属性来描述应其中还有那些内容。属性名字必须小写,并且属性值必须使用双引号括起来。有些属性是必须的,有些是可选的。一般的属性标签格式就像:<tag attribute1="value">
   
变量可以在WML卡片中定义,它们的一般格式是  $(variablename)
   
一个WML页面有一个专门的格式,它必须以XML的文档声明为开头:

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM/DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

    所有的页面中的元素,都必须在<wml></wml>标签之间。

12. 什么是一个“deck”

    一个WML文档有许多卡片(cards)组成。一个卡片是一系列完整的WML代码。这些卡片被称为一个“deck”。卡片和“deck”的概念就有点像HTML中的锚标记<a name="#achor1">和一个HTML页面。也就是说卡片是“deck”中的一个组成部分。也可以把“deck”称为WML中的页面。它们之间的关系可以比做一副扑克牌。整副扑克牌就是deck,而每一张牌就是card

13. 什么是WML“deck”

    WML“deck”或者WML文件是指decks。每个deck包含一个或者更多的card。每个deck都以<wml>开始和结束。并且每个card都以<card>开头或者结束。
   
WML微型浏览器处理WML文件或者deck的时候,它阅读整个deck,并且在deck内的各个card之间进行导航。当装入deck的时候,deck里面所有的card都已经装入到内存中,直到浏览器装入另外的deck
   
如果熟悉 HTML中的<a name>标签。WML<card>标签将是非常类似的:

<wml>

<card id="start_menu">
...some code...
</card>

<card id="purchase">
...some more code...
</card>

</wml>

    deckcard可以按照这种方式调用:[deckname][#cardname]。如果deckname省略,那么浏览器就会查找当前内存里的cardname名字的card。如果使用了deckname#cardname,那么浏览器将装入deckname的整个deck,然后跳入到#cardname。这个和HTML的工作方式很像。

14. WML是大小写敏感的吗?

    是的!要注意WAP 1.1使用小写的标签。

15. 如何显示一个美元符号?

    使用两个在一起的美元符号来表示,即“ $ $”

16. 想显示价格的格式该怎么办?

    “ $”是一个特殊的字符,使用“ $ $”来显示一个“ $”

    例如:

<p>
    The price is  $ $11.20
</p>

17. fieldset标签有什么作用?

    编写WML页面的时候要考虑到设备的屏幕很小。如果试图想把一个大的form在一个屏幕里面显示,就要指定那些标签保持在一个屏幕中。那么fieldset标签将这些标签捆绑在一个屏幕上。

18. postfield标签有什么作用?

    postfield标签使允许提交参数到服务器端。注意有些早期的模拟器还不支持该标签,这将给开发工作带来麻烦!

19. WML有类似HTML<mailto>标签吗?

    没有。但是你可以使用WML表单和服务端脚本来得到同样的效果。

20. 无法让<input/>格式正常工作是怎么回事?

    至少Nokia WML Reference没有讲清楚有关<input/>标签的用法。format参数控制着用户输入数据的类型和长度。
   
注意到不是所有的WAP 1.1浏览器都接受所有的格式化代码。例如:Nokia 7110就支持得不是很好。Mitsubishi Trium在处理“*f”代码的时候有点问题,“*”必须为1或者更大。专门的格式化代码如下:

A

AZ的任何大写字母,没有数字或其他字符。

a

az的任何小写字母,没有数字和其他字符。

N

任何09的数字。

X

AZ09的任何字符。

x

az09的任何字符。

M

任何字符,输入默认从大写开始。

m

任何字符,输入默认从小写开始。

*f

(星号)意味着任何数字(包括0),f是格式的代码。

nf

意味着恰好要输入的字符个数。n19f是格式代码。

\

是转义输出字符。

    格式化字符可以组合使用来表示一种特定的格式输入。但是强制一定的输入应当避免在用户出错的时候没有提示信息。如果输入是不正确的,该填写的区域一般仍保持空白,直到让用户知道应该输入什么。如果只想输入数字,使用“*N”那么将直接转跳到数字输入模式。如果只想输入大写的字符,使用“*M”转跳到大写输入模式。现举一些例子:
    “N”
只接受一个数字字符。
    “*N”
接受任何数字字符。
    “NN”
只接受2个数字字符,不多不少。
    “ANN”
接受一个大写字符(没有数字),后面跟着两个数字,不多不少。
    “X*N”
表示可以接受一个字符(没有数字)后面跟着任意多的数字字符。
    “NNN\-NNN\-NNNN”
表示接受美国的电话号码格式,例如:“123-456-1234”
    “2N\:2N\:2N”
表示接受时间格式,例如:“12:02:34”
    “NNNNNNNNN”
表示接受9个数字字符。
    “9N”
同样表示接受9个数字字符。 

    maxlength参数控制着输入字符的总个数。

21. 如何防止一个空的field

    在大多数情况下需要知道用户确实是输入了一些内容在field中,不能让这些内容为空。这个可以通过在服务端的检测来完成,也可以通过WML来完成。
   
WML中,这个检查可以通过合适的格式化代码来完成,或者使用一个在input标签中叫做emptyok="false" 的参数来实现(只有当必须要求用户输入的时候才使用)。如果使用了value="something" 或者value="" 用户仍然可以发送空的fields
   
以下的行将接收任何值到username field, 甚至用户将整个field清空。另外field中没有任何东西,也能够提交form

        <input name="username" type="text" value="things" format="*M"/> 

    除了用户将整个field清空,以下的行将接收任何值到username field。如果field是空的,他将不能提交form,。

        <input name="username" type="text" value="things" format="M*m"/>

    以上的应用是针对大多数的浏览器。在Nokia 7110 emptyok参数可以有同样的效果:

        <input name="username" type="text" value="things" format="*M" emptyok="false"/>

22. 使用option标签的时候,无法一屏显示完该怎么办?

    许多WAP电话的显示屏幕只能显示三到四个选项。按以下的方法分割option字段就可以输入更多的选项。

<select title="longselectlist">
<optgroup title="option1">
<option>option1-1</option>
<option>option1-2</option>
<option>option1-3</option>
</optgroup>
<optgroup title="option2">
    <option>option2-1</option>
      <option>option2-2</option>
      <option>option2-3</option>
</optgroup>
<optgroup title="option3">
      <option>option3-1</option>
      <option>option3-2</option>
      <option>option3-3</option>
</optgroup>
</select>

23. 想有一个永久的BACK在屏幕的右下方。有些好像是自动的,若没有,该怎么做?

    可以加入以下代码。

<do type="prev" label="Back">
    </prev>
</do>

    更好的是使用template

……
<template>
    <do type="prev" label="Back" name="back">
        </prev>
    </do>
</template>
……

24. WAP支持列表吗?

    是的,WAP1.1支持列表和相关的标记。

25. 可以在WML中使用表单吗?

    可以。但是Nokia 7110在显示表单的时候有些问题。

26. WML支持什么样的表单提交方式?

    WML支持GETPOST方式。但是Nokia 7110在处理GET方式的时候有些问题。

27. WML中如何增加参数到URL字符串中?

    HTML的工作方式很像,如下所示:

……
www.someserver.com/someurl?parameter1=value1&parameter2=value2
……

    唯一的不同是将“&”变成“&”

28. 如何从WMLASP传送数据?

    假设有一个ASP叫做“myasp.asp”,并且有一个WML变量叫做 “wmlvar”。当发出请求“myasp.asp?wmlvar=something”,可以使用下面的方法得到变量的内容。

    dim aspvar
    aspvar = Request.QueryString("wmlvar")
 

    ASP变量“aspvar”将包含字符串“something”。当然ASP变量也可以与WML变量同名。

29. 如何让WML页面自己更新?

    有过Web经验的人喜欢使用:

        <meta http-equiv="refresh" content="1;http://somewhere.com/"> 

    来强制浏览器自动更新。

    虽然在WAP中也支持一些META标签,一个更好的办法是使用<ontimer>标签。
   
以下的代码显示了如何自动转跳到另外一个卡片:nextdeck.wml

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
    <card id="splashscreen" ontimer="nextcard.wml">
      <timer value="40"/>
      <p>Please wait for the timer to run out...</p>
    </card>
</wml>

    下面的代码将强制浏览器在一段时间后重新装入同一个卡片。这个页面叫做loop.wml

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
    <card id="loop" ontimer="loop.wml">
      <timer value="40"/>
      <p>This text will be shown over and over again...</p>
    </card>
</wml>

    注意必须避免浏览器可能要使用的cache机制。

30. WML页面的最大大小是多少?

    1397 bytes/deck

[1] [2] [3] [4] [5]
2006-12-23 11:36:00    出处:yesky
Google
热点文章/相关文章
最新文章
艺术设计秀最新图片