WAP技术入门(续)
marginwidth="0" marginheight="0" src="http://218.16.120.35:65001/PC/Global/images/b.html" frameborder="0" width="728" scrolling="no" height="90">
语法规则如下:
1、 每一行程序均以分号结尾
2、 注释方法:“//”或者“/* */”
3、 使用关键字“var”来声明变量
怎么样?从上面我们就可看出来,WMLScript语言和javascript语言是多么的相似,WMLScript的变量类型有:Boolean、Interger、Floating-point、String、Invalid WMLScript的流程控制语言和javascript的相同,实例如下:
// if-else
if (x == y){ x = x * 3.25; }else{ x = 0; }
// for loop
for (var counter = 1; counter < 500; counter ++){ var i = counter * 1.05; somefunction(i); };
// while loop
while (i > j){ i--; };
// break
for (var counter = 1; counter < 500; counter ++){ var i = counter * 1.05; if (counter == 250) break; somefunction(i); };
file://continue
for (var counter = -100; counter < 100; counter ++){ if (counter == 0) continue; var x = 350/counter; };
函数:
WMLScript的函数使用方法如下:
extern function identifier(FormatParameterList) Block ; extern是说明函数是放在另外一个文件当中的。如下:
function RunTime(distance, speed){ var time = distance / speed; return time; };
此例出入distance以及speed两个参数,然后返回time的值。如果调用的是WMLScript的內建函数,就必须加上这个函数所属的类名,例如调用 String类的length()函数,使用: var a = String.length('just a test'); 內建函数。
WMLScript有六大內建函数:
Lang:包含数据形态、绝对值、随机数等。
Float:浮点数处理。
String:字符串长度(length)、字符位置(charAt)等字串处理。
URL:getReferer、getHost。
WMLBrowser:go、prev、next、refresh等浏览处理。
Dialogs:弹出(prompt、confirm、alert)等对话框。
首先我们先建立一个WML文件,WMLScriptExample.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="stuid" title="stuid:">
<do type="accept" label="Results">
<go href="WMLScriptExample.wmls#checkid($(stuid))"/>
</do>
<p>
Enter Stu_ID: <input type="text" name="stuid"/>
</p>
</card>
<card id="Results" title="Results:">
<p>
You entered:<br/>
Stu_ID: $(stuid)<br/>
</p>
</card>
</wml>
让用户输入学号,go的href连接到另外一个.wmls文件,调用checkid函数。再建 立一个WMLScriptExample.wmls文件,內容如下:
extern function checkid(stuid){ if (String.length(stuid) != 8){ WMLBrowser.setVar("stuid", "Error: String must be 8 digits long."); } WMLBrowser.go("WMLScriptExample.wml#Results"); };
这个WMLScript就是检查stuid字串长度是否为8,并且返回结果。 WMLBrowser.setVar()设定变量的值,WMLBrowser.go()將手机定位到下一个 WML文件,也就是WMLScriptExample.wml的Results卡片。
怎么样?WMLScript是不是很类似于javascript?简直就是一模 一样,就是多了和WML文件相配合的功能而已。
最后需要指出的是,现在的大多数WAP手机(Nokia7110、爱立信R320S等等)都是使用UTF-8编码的,也就是采用Uniecode来编码,这样,如果我们直接在WML/WMLScript中使用中文的话,将会产生乱码,手机用户无法识别,所以我们在输出中文之前,要对中文进行Uniecode的编码,这个工作就要服务器端的程序来完成了,比如我们使用ASP来做这项工作,可以调用这个函数实现转换,其他语言的实现方法类似:
Function c2u(myText)
For i = 1 to Len(myText) ' 对每一个字节进行处理
c = Mid(myText, i, 1)
c2u = c2u & "&#x" & Hex(AscW(c)) & ";"
' 将传回的Unicode转换为十六进制值
next
End Function
实现的例子如下:(chinese.asp)
<% Response.ContentType="text/vnd.wap.wml;charset=UTF-8"
%> <?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<% Function c2u(myText)
For i = 1 to Len(myText)
c = Mid(myText, i, 1)
c2u = c2u & "&#x" & Hex(AscW(c)) & ";"
next
End Function
%> <wml>
<card id="card1" title="UTF8">
<p>
<%=c2u("IT的事找赛迪网!!")%><br/>
</p>
</card>
</wml>
在诺基亚的仿真手机中浏览这个ASP文件,就可以看到中文了!
结束语
我们通过上面的介绍,也可以大致了解一下WAP技术的来龙去脉了,相信通过你自己的不断实践,一定能够驾驭它的。其实WML和HTML一样属于一个静态的页面,要 想真正建设吸引用户的WAP站点,不光要仅仅依靠WML本身,还要配合各种运行在服务器端的程序,比如ASP、PHP、JSP、CGI等等来实现丰富多彩的动态WAP网站,这就是后话了,暂且不谈。随着国内的WAP技术大环境的越来越完善,将会有更多的网站、ISP等投入到这场抢夺市场的战斗中来,相信WAP技术的可移动性和简易操作性将会吸引越来越多的用户投身到广阔的无线网络中,对于我们WEB开发人员来讲,掌握了WAP就掌握了未来。
WAP技术入门(续)相关推荐
- WAP技术课程(转)
一.配置web服务器 在设计wap网页时不论你使用的wap开发工具是up.sdk 或nokia wap tookit 或者ericsson wapide,你都必须进行web服务器设置,故在此将常 见的 ...
- 计算机视觉一些项目实战技术(续)
计算机视觉一些项目实战技术(续) PROTO-OBJECT BASED SALIENCY 在本项目中,提出一种新的方法来完成显著目标侦测的任务.与以往基于聚光灯注意理论的显著目标检测器相比,遵循基于对 ...
- 《Docker技术入门与实战》——2.4 本章小结
本节书摘来自华章计算机<Docker技术入门与实战>一书中的第2章,第2.4节,作者:杨保华,戴王剑,曹亚仑著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...
- python编程入门与案例详解pdf-Flutter技术入门与实战 PDF 清晰版
给大家带来的一篇关于Flutter相关的电子书资源,介绍了关于Flutter入门.Flutter实战.Flutter技术方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小162.5 MB, ...
- 《Docker技术入门与实战》——2.3 本书环境介绍
本节书摘来自华章计算机<Docker技术入门与实战>一书中的第2章,第2.3节,作者:杨保华,戴王剑,曹亚仑著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...
- 《SaltStack技术入门与实践》—— Job管理
Job管理 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 在SaltStack里面执行任何一个操作都会在Master上产生一个jid号.Minion ...
- 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理
[Zigbee技术入门教程-02]一图读懂ZStack协议栈的核心思想与工作机理 广东职业技术学院 欧浩源 Z-Stack协议栈是一个基于任务轮询方式的操作系统,其任务调度和资源分配由操作系统抽 ...
- 《 Docker 技术入门与实战 》读书笔记 ( CentOS 安装 Docker )
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. PS :个人所有读书笔记只记录个人想要的内容,很可能原书大量内容没有纳入笔记中... ... 以下全 ...
- android hook底层代码_Java-Hook技术-入门实践(反射、动态代理)-Hook拦截通知(当前App/Context)...
老样子,上一篇MonkeyLei:Java-Hook技术-入门实践+反射.动态代理.热修复再看看 我们Hook学习了一下,一个是Java本地Main的实践练习. 一个是Android的监听事件的Hoo ...
- 直方图均衡 视觉显著_计算机视觉一些项目实战技术(续)
计算机视觉一些项目实战技术(续) 1. PROTO-OBJECT BASED SALIENCY 在本项目中,提出一种新的方法来完成显著目标侦测的任务.与以往基于聚光灯注意理论的显著目标检测器相比,遵循 ...
最新文章
- 3月7日 ArrayList集合
- 索引键的唯一性(2/4):唯一与非唯一聚集索引
- 神经风格迁移(Neural Style Transfer)程序实现(Caffe)
- ubuntu1804系统设置在哪里_斐讯路由器k2如何刷机 斐讯路由器k2系统刷机教程【详解】...
- 自定义例外:当没有查询到员工信息时,抛出例外
- 二手轻型载货车报价图片_别买贵了,老陈带你走进二手iPhone的大本营:深圳飞扬市场...
- 测试下微信公众号新功能
- sqlite3数据库最大可以是多大?可以存放多少数据?读写性能怎么样?详述
- 软件构造学习笔记-第四周
- java 取对象的类_Java中通过Class类获取Class对象的方法详解
- COJS 1752. [BOI2007]摩基亚Mokia
- TOP计划猿10最佳实践文章
- vim介绍、vim颜色显示、vim一般模式操作
- VC虚拟键值表(详细介绍)
- ArcGIS API for JavaScript三维管网之三维模型制作(无插件)
- C语言编写的学生考勤信息管理系统
- win2003桌面图标蓝底去除
- 串口控制计算机重启,电脑开机无限重启解决方法
- 【OpenBMC 系列】2.OpenBMC镜像编译流程
- python入门基础笔记