上海网站建设

上海网站建设

咨询热线:(021)51698180


HTML,CSS

上海网站建设RSS订阅  RSS订阅  新浪微博  新浪微博  上海网站建设客服  客服  获取报价  获取报价

XHTML MP教程(四):XHTML MP中不再使用的WML属性

一些 WML 1.x中的特征在XHTML MP中不再使用,在这节你可以学到WML 1.x和XHTML MP的区别。这节对以前是用WML 1.x开发,现在开始采用XHTML MP开发的人比较有用,或者对从WML 1.x的移动互相网应用程序提升到XHTML MP提供参考。
 
对于一些失去的WML的功能,在XHTML MP中有类似的实现方法。需要指出的是,WAP2.0是向后兼容WML1.x的,就是说支持WAP 2.0的设备,也可以正常查看WML 1.x的文档。如果有在 WML中有的功能,但在XHTML MP中没有的,而你又要用到的,那么你可以用WML 1.X来开发,因为支持WAP2.0的设备同样可以正常显示WML 1.x开发的文档。
 
以下是在XHTML MP中不再有的WML功能
  1. XHTML MP不支持decks 和cards
  2. XHTML MP不支持timers
  3. XHTML MP不支持事件Events
  4. XHTML MP不支持变量
  5. XHTML MP不支持客户端脚本
  6. XHTML MP不支持可编程序软键(Programmable SoftKeys)
  7. XHTML MP不支持<u>标签
  8. XHTML MP不支持Input框的format属性
  9. XHTML MP 不支持锚点传输数据

XHTML MP不支持decks和cards

 
WML中的<deck>和<card>标签在XHTML MP中不再存在。在WML中,一个文件可以有一个或多个cards,所有的cards组合成deck,所有deck中的cards会同一时间一起下载到移动设备中,WAP浏览器一次显示一个card,可以使用锚链接,链接到其他的card。通过使用cards和decks,可以减少服务器的往返次数,可以显著的提高性能,因为无线设备到服务器的每个请求的延迟是比较高的。
 
在XHTML MP中要实现类似的功能,您可以使用多重消息(多个文档放到一个HTTP响应中),另外一种方法是使用锚点的方法。(目标锚点放到一个页面的不同地方)
 

XHTML MP不支持timers

 
在WML中创建一个定时器,使用<timer>标签和onTimer事件。在XHTML MP中不支持<timer>标签和onTimer事件。
 
在XHTML MP中要实现类似的功能,可以尝试使用HTTP refresh,像这样:
 
 
...
<head>
...
<meta http-equiv="refresh" content="10;URL=http://www.hahoo.cn/" />
...
</head>
...
 
 
在上面这个XHTML MP的例子,<meta>告诉WAP浏览器10秒后转到URL地址http://www.hahoo.cn/,注意的是一个WML计时器在向前访问card时被触发开始,而XHTML MP页,被打开时就开始触发。
 

XHTML MP不支持事件Events

 
在XHTML MP中事件是不可用的,WML支持4种事件:ontimer, onenterbackward, onenterforward 和onpick。正如上一节中所讨论的,HTTP refresh可以模拟onTimer事件。对于其他事件,在XHTML MP中没有替代的方法,如果这些事件在你的移动设备应用程序开发中必须使用,那么请考虑使用WML 1.x而不是XHTML MP。
 

XHTML MP不支持变量

 
在WML中,你可以声明变量,并给它分配一个值。WML变量具有全局性,这意味着您可以在任何deck和card中使用。 WML变量的一个常见的用途是存储用户输入的一些数据,这样用户就不用每次都反复的输入这些数据了。
 
在XHTML MP中,不能使用变量,不过解决方法可以将这些放到服务器端处理。例如,如果你要在XHTML MP的页面中存储一些用户的数据,用来在其他页面中使用,那么把数据发送并存储在服务器端,当其他页面使用到时,可以从服务器端发送到无线设备中。
 

XHTML MP不支持客户端脚本

 
在WML中,您可以使用客户端脚本语言WMLScript,这是类似于JavaScript。WML Script的比较常用的是验证用户输入的数据。
 
Xhtml MP中不再支持客户端脚本,解决方法是把这些放到服务器端处理。例如,要验证用户通过无线设备输入的数据,数据会发送到服务器端进行处理,如果用户输入的数据格式不正确,超过某个范围或者忘记输入了某些字段,服务器端可以引导用户到另外一个XHTML MP页面进行提示。
 
未来,移动设备将支持一种客户端脚本语言,叫ECMAScript Mobile Profile (ESMP),它可以用到XHTML MP中,它支持WML Script的功能。
 

XHTML MP不支持可编程序软键(Programmable SoftKeys)

 
可编程序软键(Programmable SoftKeys)是WML的一个很大的特点。<do>标签常用来编写softkey。用户可以方便地通过点击一个手机左软键或右软键选择常用选项。
 
这在XHTML MP中不能使用,可以使用accesskey属性来解决,accesskey属性用来指定一个键盘快捷键。锚链接和提交按钮支持accesskey属性。例如:
 
 
<a accesskey="1" href="part1.xhtml">XHTML MP Tutorial Part 1</a><br/>
<a accesskey="2" href="part2.xhtml">XHTML MP Tutorial Part 2</a><br/>
<a accesskey="3" href="part3.xhtml">XHTML MP Tutorial Part 3</a>
 
 
如果用户按下“1”键,WAP浏览器将直接进入“part1.xhtml”。通过accesskey属性,要触发一个动作,在XHTML MP页中只需一个点击。这类似使用SoftKeys。
 
WAP CSS中的 -wap-accesskey,可以用来代替accesskey属性
 
一些Nokia的WAP浏览器,所有的锚链接和提交按钮,有accesskey属性指定键盘快捷,会自动包含在“选项”菜单中。用户可以通过点左键来调出选项菜单。在选项菜单中的锚链接的标签名称是在<a></ a>标签内的文本。对于图像链接和提交按钮,选项菜单中的名称是<img>的alt属性值和<input>标记的value属性值。例如:
 
 
<a accesskey="1" href="part1.xhtml">XHTML MP Tutorial Part 1</a><br/>
<a accesskey="2" href="part2.xhtml"><img src="icon.gif" height="40" width="40" alt="XHTML MP Tutorial Part 2" /></a><br/>

<form action="xhtml_mp_tutorial_proc.asp" method="get">
  <p>
    Which part of our XHTML MP tutorial do you like most?<br/>
    <input type="text" name="tutorial_part" title="Edit" /><br/>
    <input accesskey="3" type="submit" value="Submit Form" />
  </p>
</form>
 
在上面这个例子中,"XHTML MP Tutorial Part 1","XHTML MP Tutorial Part 2","Submit Form"将会成为选项菜单的标签文本,如果文字太长,它将会自动被截断。
 
注意,此功能在非Nokia手机中不支持。
 

XHTML MP不支持<u>标签

 
在WML中,<u>标签可以用来给文本加下划线。
 
在XHTML MP中不再支持<u>标签,要给文字加下划线,可以通过WAP CSS的text-decoration属性来解决。例如,如果要给所有的H1增加下划线,你可以按照下面的写法:
 
h1 {
 text-decoration: underline
}
 

XHTML MP不支持Input框的format属性

 
在WML中,可以对<input>标签设置用户可以输入的数据类型和可输入的字符数。
 
在XHTML MP中,<input>不支持format属性,另外的解决方法是通过WAP CSS的 -wap-input-format来设置。-wap-input-format可以设置输入的格式,这根format属性很像。例如,要限制所有输入字段只接受5个数字字符,那么在XHTML MP页面的WAP CSS样式表中通过如下代码声明:
 
 
input {
 -wap-input-format: "5N"
}
 
 

XHTML MP 不支持锚点传输数据

 
 
在WML中,通过锚链接将数据发送到服务器端,像这样:
 
...
<p>
  What's your name?
  <input name="name"/><br/>
  Which part of our XHTML MP tutorial do you like most?
  <input name="tutorial_part"/><br/>
  <anchor>
    <go method="get" href="xhtml_mp_tutorial_proc.asp">
      <postfield name="name" value="$(name)"/>
      <postfield name="tutorial_part" value="$(tutorial_part)"/>
    </go>
  Send Data
  </anchor>
</p>
...
 
XHTML MP Does Not Support Posting of Data with Anchor Links1

 
XHTML MP Does Not Support Posting of Data with Anchor Links2
Sony Ericsson T610
XHTML MP Does Not Support Posting of Data with Anchor Links3

 
XHTML MP Does Not Support Posting of Data with Anchor Links4
Nokia Mobile Browser 4.0
 
XHTML MP不支持锚链接发送数据,用提交按钮来代替,下面的XHTML MP代码跟上面的WML代码做同样的事情。
 
...
<form action="xhtml_mp_tutorial_proc.asp" method="get">
  <p>
    What's your name?<br/>
    <input name="name"/><br/>
    Which part of our XHTML MP tutorial do you like most?<br/>
    <input name="tutorial_part"/><br/>
    <input type="submit" value="Send Data"/>
  </p>
</form>
...
 
XHTML MP Does Not Support Posting of Data with Anchor Links5

 
XHTML MP Does Not Support Posting of Data with Anchor Links6
Sony Ericsson T610
XHTML MP Does Not Support Posting of Data with Anchor Links7

 
XHTML MP Does Not Support Posting of Data with Anchor Links8
Nokia Mobile Browser 4.0