文章詳情頁
WML學(xué)習(xí)之六 事件
瀏覽:118日期:2022-06-03 18:38:49
事件
WML的事件基本上分為兩大類,一類是鍵盤(包括軟硬按鈕)輸入事件,用<do>標(biāo)簽來處理,另一類是相關(guān)頁面內(nèi)部的事件,用<onevent>標(biāo)簽來處理。
<do>的語法如下:<do type="type" label="label" name="name" optional="false|true">任務(wù)</do>,任務(wù)就是以前提到的四種任務(wù)。<do>的屬性中,type是必選的,其他為可選。
*label屬性,指定了軟按鈕在屏幕上的顯示文本。目前type屬性為delete,help,prev時(shí)該屬性無效。
*name屬性,為<do>取個(gè)名字,同一的CARD里的<do>不能重名。如果CARD級(jí)的<do>和DECK級(jí)的<do>同名,則覆蓋DECK級(jí)的<do>。
*optional屬性,指定手機(jī)是不是可以忽略這個(gè)事件,默認(rèn)值是false。
*type屬性,指定觸發(fā)的事件,具體如下;
type值 觸發(fā)原因
accept 調(diào)用ACCEPT按鈕機(jī)制
delete 調(diào)用DELETE按鈕機(jī)制
help 調(diào)用HELP按鈕機(jī)制
options 調(diào)用選擇按鈕機(jī)制
prev 調(diào)用PREV按鈕機(jī)制
reset 調(diào)用清除和重新設(shè)定手機(jī)狀態(tài)時(shí)的RESET機(jī)制(目前不支持)
unknown 調(diào)用unknown機(jī)制,等于type=""(目前不支持)
vnd. co-type 調(diào)用廠商特定的機(jī)制(目前不支持)
X-*, x-* 供以后使用(不保留)(目前不支持)
test6.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>
<meta http-equiv="Cache-Control" content="max-age=0"/>
</head>
<card id="card0" ordered="false">
<do type="accept" label="InputName" name="do1">
<go href="#card01"/>
</do>
<p>
NAME:<input name="userName" title="User Name" type="text" format="*M" emptyok="false" maxlength="12"/>
</p>
</card>
<card id="card01">
<p>
You name is $(userName:noesc).
</p>
</card>
</wml>
<onevent>的語法如下,<onevent type="type">任務(wù)</onevent>,必選屬性type的取值如下:
type值 如果用戶執(zhí)行了以下操作就執(zhí)行任務(wù)
onpick 用戶選擇或不選一個(gè)<option>項(xiàng)時(shí)。
onenterforward 用戶使用<go>任務(wù)到達(dá)一個(gè)CARD時(shí)。
onenterbackward 用戶使用<prev>任務(wù)返回到前面的CARD時(shí),或者按BACK按鈕時(shí)。
ontimer 當(dāng)<timer>過期時(shí)。
test7.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>
<meta http-equiv="Cache-Control" content="max-age=0"/>
</head>
<card id="card0" ordered="false">
<p>
Please select a city...
<select title="Cities List" name="city">
<option title="Beijing" value="Beijing">
<onevent type="onpick">
<go href="#card01"/>
</onevent>Beijing</option>
<option title="Shanghai" value="Shanghai" onpick="#card01">Shanghai</option>
<option title="Hongkong" value="Hongkong" onpick="#card01">Hongkong</option>
</select>
& lt;/p>
</card>
<card id="card01">
<p>
You are Living in $(city:noesc)
</p>
</card>
</wml>
<timer/>可以用來在用戶不進(jìn)行任何操作的一段時(shí)間后,自動(dòng)執(zhí)行一個(gè)任務(wù),任何激活CARD頁面的任務(wù)和用戶操作都會(huì)啟動(dòng)<timer/>,而任務(wù)進(jìn)行時(shí),<timer/>就停止。每個(gè)CARD只能有一個(gè)<timer/>,一個(gè)<timer/>只能觸發(fā)一個(gè)任務(wù)。語法如下:<timer name="variable" value="value"/>,其中name為可選屬性,指定為一個(gè)變量名,當(dāng)退出該CARD時(shí),該變量存儲(chǔ)此時(shí)定時(shí)器的值,當(dāng)定時(shí)器超時(shí)時(shí),手機(jī)將該變量設(shè)為0;value為必選屬性,用來設(shè)置定時(shí)器的定時(shí)值,最小單位為0.1秒。
test8.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>
<meta http-equiv="Cache-Control" content="max-age=0"/>
</head>
<card id="card1" ontimer="#card2">
<timer name="time1" value="50"/>
<p align="center">
After 5s, goto card2
</p>
</card>
<card id="card2">
<onevent type="ontimer">
<go href="#card1"/>
</onevent>
<timer name="time2" value="50"/>
<p align="center">
Here is card2!
</p>
</card>
</wml>
再提一下,<onevent> <timer> <do>三者必須按以上順序?qū)憽?
此外在DECK級(jí)還可以加入<template>,用來將事件捆綁在DECK級(jí)上,語法如下:
<template onenterforward="url" onenterbackward="url" ontimer="url">
<do>或者<onevent>
</template>
test9.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>
<meta http-equiv="Cache-Control" content="max-age=0"/>
</head>
<template>
<do type="accept" label="deckPress" name="do1">
<go href="#card01"/>
</do>
</template>
<card id="card0" ordered="false">
<do type="accept" label="cardPress" name="do1">
<go href="#card02"/>
</do>
<p>
Press ACCEPT...
</p>
</card>
<card id="card01">
<p>
Here is card01
</p>
</card>
<card id="card02">
<p>
Here is card02
</p>
</card>
</wml>
WML的事件基本上分為兩大類,一類是鍵盤(包括軟硬按鈕)輸入事件,用<do>標(biāo)簽來處理,另一類是相關(guān)頁面內(nèi)部的事件,用<onevent>標(biāo)簽來處理。
<do>的語法如下:<do type="type" label="label" name="name" optional="false|true">任務(wù)</do>,任務(wù)就是以前提到的四種任務(wù)。<do>的屬性中,type是必選的,其他為可選。
*label屬性,指定了軟按鈕在屏幕上的顯示文本。目前type屬性為delete,help,prev時(shí)該屬性無效。
*name屬性,為<do>取個(gè)名字,同一的CARD里的<do>不能重名。如果CARD級(jí)的<do>和DECK級(jí)的<do>同名,則覆蓋DECK級(jí)的<do>。
*optional屬性,指定手機(jī)是不是可以忽略這個(gè)事件,默認(rèn)值是false。
*type屬性,指定觸發(fā)的事件,具體如下;
type值 觸發(fā)原因
accept 調(diào)用ACCEPT按鈕機(jī)制
delete 調(diào)用DELETE按鈕機(jī)制
help 調(diào)用HELP按鈕機(jī)制
options 調(diào)用選擇按鈕機(jī)制
prev 調(diào)用PREV按鈕機(jī)制
reset 調(diào)用清除和重新設(shè)定手機(jī)狀態(tài)時(shí)的RESET機(jī)制(目前不支持)
unknown 調(diào)用unknown機(jī)制,等于type=""(目前不支持)
vnd. co-type 調(diào)用廠商特定的機(jī)制(目前不支持)
X-*, x-* 供以后使用(不保留)(目前不支持)
test6.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>
<meta http-equiv="Cache-Control" content="max-age=0"/>
</head>
<card id="card0" ordered="false">
<do type="accept" label="InputName" name="do1">
<go href="#card01"/>
</do>
<p>
NAME:<input name="userName" title="User Name" type="text" format="*M" emptyok="false" maxlength="12"/>
</p>
</card>
<card id="card01">
<p>
You name is $(userName:noesc).
</p>
</card>
</wml>
<onevent>的語法如下,<onevent type="type">任務(wù)</onevent>,必選屬性type的取值如下:
type值 如果用戶執(zhí)行了以下操作就執(zhí)行任務(wù)
onpick 用戶選擇或不選一個(gè)<option>項(xiàng)時(shí)。
onenterforward 用戶使用<go>任務(wù)到達(dá)一個(gè)CARD時(shí)。
onenterbackward 用戶使用<prev>任務(wù)返回到前面的CARD時(shí),或者按BACK按鈕時(shí)。
ontimer 當(dāng)<timer>過期時(shí)。
test7.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>
<meta http-equiv="Cache-Control" content="max-age=0"/>
</head>
<card id="card0" ordered="false">
<p>
Please select a city...
<select title="Cities List" name="city">
<option title="Beijing" value="Beijing">
<onevent type="onpick">
<go href="#card01"/>
</onevent>Beijing</option>
<option title="Shanghai" value="Shanghai" onpick="#card01">Shanghai</option>
<option title="Hongkong" value="Hongkong" onpick="#card01">Hongkong</option>
</select>
& lt;/p>
</card>
<card id="card01">
<p>
You are Living in $(city:noesc)
</p>
</card>
</wml>
<timer/>可以用來在用戶不進(jìn)行任何操作的一段時(shí)間后,自動(dòng)執(zhí)行一個(gè)任務(wù),任何激活CARD頁面的任務(wù)和用戶操作都會(huì)啟動(dòng)<timer/>,而任務(wù)進(jìn)行時(shí),<timer/>就停止。每個(gè)CARD只能有一個(gè)<timer/>,一個(gè)<timer/>只能觸發(fā)一個(gè)任務(wù)。語法如下:<timer name="variable" value="value"/>,其中name為可選屬性,指定為一個(gè)變量名,當(dāng)退出該CARD時(shí),該變量存儲(chǔ)此時(shí)定時(shí)器的值,當(dāng)定時(shí)器超時(shí)時(shí),手機(jī)將該變量設(shè)為0;value為必選屬性,用來設(shè)置定時(shí)器的定時(shí)值,最小單位為0.1秒。
test8.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>
<meta http-equiv="Cache-Control" content="max-age=0"/>
</head>
<card id="card1" ontimer="#card2">
<timer name="time1" value="50"/>
<p align="center">
After 5s, goto card2
</p>
</card>
<card id="card2">
<onevent type="ontimer">
<go href="#card1"/>
</onevent>
<timer name="time2" value="50"/>
<p align="center">
Here is card2!
</p>
</card>
</wml>
再提一下,<onevent> <timer> <do>三者必須按以上順序?qū)憽?
此外在DECK級(jí)還可以加入<template>,用來將事件捆綁在DECK級(jí)上,語法如下:
<template onenterforward="url" onenterbackward="url" ontimer="url">
<do>或者<onevent>
</template>
test9.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>
<meta http-equiv="Cache-Control" content="max-age=0"/>
</head>
<template>
<do type="accept" label="deckPress" name="do1">
<go href="#card01"/>
</do>
</template>
<card id="card0" ordered="false">
<do type="accept" label="cardPress" name="do1">
<go href="#card02"/>
</do>
<p>
Press ACCEPT...
</p>
</card>
<card id="card01">
<p>
Here is card01
</p>
</card>
<card id="card02">
<p>
Here is card02
</p>
</card>
</wml>
標(biāo)簽:
XML/RSS
相關(guān)文章:
1. python 使用事件對(duì)象asyncio.Event來同步協(xié)程的操作2. vue各種事件監(jiān)聽實(shí)例(小結(jié))3. 如何利用原生JS實(shí)現(xiàn)觸摸滑動(dòng)監(jiān)聽事件4. 深入了解React中的合成事件5. 詳解vue中在循環(huán)中使用@mouseenter 和 @mouseleave事件閃爍問題解決方法6. Esper 1.0 發(fā)布 -- 純Java的事件流處理和相關(guān)性框架7. HTML5實(shí)戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)8. Android實(shí)現(xiàn)觸發(fā)html頁面的Button控件點(diǎn)擊事件方式9. vue監(jiān)聽滾動(dòng)事件的方法10. jQuery如何阻止事件冒泡
排行榜
