版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第7章專用于手機的JavaScript_ESMP7.1使用ESMPECMAScriptMobileProfile簡稱ESMP,是OMA專為手機定義的一個腳本標(biāo)準(zhǔn)。它是基于ECMA-262第三版指定的,并且還增加了BOM、CoreDOM和HTMLDOM的定義。ECMA-262三足鼎立:Netscape發(fā)明了JavaScript;微軟發(fā)布IE3.0時搭載了一個JavaScript的克隆版,叫做Jscript;CEnvi
中的ScriptEase。歐洲計算機制造商協(xié)會ECMA完成統(tǒng)一,形成ECMA-262,該標(biāo)準(zhǔn)定義了名為ECMAScript
的全新腳本語言。1999年12月發(fā)布的ECMA-262第三版,目前所有主流的Web瀏覽器都遵守。ECMAScript盡管ECMAScript
是一個重要的標(biāo)準(zhǔn),但它并不是JavaScript唯一的部分,也不是唯一被標(biāo)準(zhǔn)化的部分。實際上,一個完整的JavaScript實現(xiàn)是由以下3個不同部分組成的:?核心(ECMAScript)?文檔對象模型(DOM)?瀏覽器對象模型(BOM)ECMAScriptJavaScript的核心ECMAScript
描述了該語言的語法和基本對象;DOM描述了處理網(wǎng)頁內(nèi)容的方法和接口;BOM描述了與瀏覽器進行交互的方法和接口。7.1.1ESMP與ECMAScript的不同ESMP于ECMA-262第三版的不同之處主要表現(xiàn)在以下幾個方面:ESMP為所有內(nèi)建對象(不包括BOM)定義了一個version屬性,格式為M.m.I.i。支持UTR-8和UTF-16編碼ESMP支持非轉(zhuǎn)義字符前加一個反斜杠禁止使用ES-CP中限制的語法ESMP定義了宿主BOM對象、HTMLDOM和CoreDOM7.1.1ESMP與ECMAScript的不同ESMP規(guī)定必須用分號結(jié)束語句ESMP規(guī)定,String的toLowerCase()和toUpperCase()方法分別等同于toLocaleLowerCase()和toLocaleUpperCase()方法。ESMP對Array類的sort()方法指定的參數(shù)不是一個函數(shù)時拋出TypeError異常。ESMP增加了一個MemeryError異常類型,為Error類增加了code屬性。RegExp對象的multiline屬性以及模式修正符m不支持。7.1.1ESMP與ECMAScript的不同Array類的sort()方法格式:arrayObject.sort(sortby)無參調(diào)用時,按照字符編碼的順序進行排序。如果想按照其他標(biāo)準(zhǔn)進行排序,就需要提供比較函數(shù)。sort1.html7.1.1ESMP與ECMAScript的不同函數(shù)要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數(shù)字。比較函數(shù)應(yīng)該具有兩個參數(shù)a和b,其返回值如下:若a小于b,在排序后的數(shù)組中a應(yīng)該出現(xiàn)在b之前,則返回一個小于0的值。若a等于b,則返回0。若a大于b,則返回一個大于0的值。sort2.html7.1.2ESMPBOMBOM是BrowserObjectModel的縮寫,簡稱瀏覽器對象模型。
BOM提供了獨立于內(nèi)容而與瀏覽器窗口進行交互的API,這些API由若干對象組成,稱為宿主對象。每個對象都提供了很多方法與屬性。
由于BOM主要用于管理窗口與窗口之間的通訊,因此其核心對象是window。7.1.2ESMPBOM基本的BOM體系結(jié)構(gòu)圖7.1.2ESMPBOM1.window對象window對象是瀏覽器頂層的一個對象,是瀏覽器窗口這個類的一個實例。它可以產(chǎn)生其他的對象,稱為window的子對象,如history、location、document等。調(diào)用其方法和屬性無需指定對象名。document.write("BOM");window.document.write("BOM");7.1.2ESMPBOM1.window對象屬性:history、navigator、location、document。方法:prompt()、confirm()、alert()、setTimeout()、clearTimeout()JavaScript消息框警告框:alert("文本")用戶需要點擊確定按鈕才能繼續(xù)進行操作。
確認(rèn)框:confirm("文本")如果用戶點擊確認(rèn),那么返回值為true。如果用戶點擊取消,那么返回值為false。
提示框:prompt("文本","默認(rèn)值")如果用戶點擊確認(rèn),那么返回值為輸入的值。如果用戶點擊取消,那么返回值為null。
alert.htmlsetTimeout()和clearTimeout()setTimeout():暫停指定的毫秒數(shù)后執(zhí)行指定的代碼。
clearTimeout():在暫停時間段內(nèi)可用來取消setTimeout函數(shù)指定的將要執(zhí)行的代碼。setTimeout()和clearTimeout()語法格式:如要考慮用clearTimeout
()
取消,則調(diào)用setTimeout()時要將其賦給一個變量。variTimerID=window.setTimeout(func[,delay[,arguments…]]);window.clearTimeout(iTimerID);timeout.html7.1.2ESMPBOM2.navigator對象window.navigator
對象包含有關(guān)訪問者瀏覽器的信息。Navigator對象包含了正在使用的瀏覽器的版本信息,可以通過它獲取瀏覽器已經(jīng)安裝的插件、支持MIME類型等信息。使用window.navigator屬性可以返回一個navigator對象,該對象包含一些方法、屬性、集合等成員。7.1.2ESMPBOM2.navigator對象屬性:appName
返回瀏覽器的名稱appVersion
返回瀏覽器的平臺和版本信息
userAgent
返回由客戶機發(fā)送服務(wù)器的user-agent頭部的值。7.1.2ESMPBOM使用forin循環(huán)查看這些成員的值:<script>for(iinwindow.navigator){
document.write(i+“===”+window.navigator[i]+”<br/>”);}</script>navigator.html7.1.2ESMPBOM2.navigator對象用navigator.userAgent來識別瀏覽器警告:來自navigator對象的信息具有誤導(dǎo)性,不應(yīng)該被用于檢測瀏覽器版本,這是因為:navigator數(shù)據(jù)可被瀏覽器使用者更改瀏覽器無法報告晚于瀏覽器發(fā)布的新操作系統(tǒng)checknavigator.html7.1.2ESMPBOM3.history對象history對象指瀏覽器的瀏覽歷史。屬性:length返回瀏覽器歷史列表中的URL數(shù)量方法:back()加載history列表中的前一個
URLforward()加載history列表中的下一個URLgo([num])加載history列表中的某個具體頁面,參數(shù)num是字符串則表示歷史中的URL,數(shù)字則表示前進或后退的步數(shù)。history.html7.1.2ESMPBOM4.location對象window.location
對象用于獲得某個窗口對象所打開的地址(URL),并把瀏覽器重定向到新的頁面。表示當(dāng)前窗口直接用location,其他窗口用“窗口對象名.location”。出于安全性需要,屬于不同協(xié)議或不同主機的兩個地址間不能互相引用對方的location對象。var
newWindow=window.open(“timeout.html”);document.write(newWindow.location);document.write(location);location.html7.1.2ESMPBOM4.location對象屬性:hash設(shè)置或返回從井號(#)開始的URL(錨)host設(shè)置或返回主機名和當(dāng)前URL的端口號href
設(shè)置或返回完整的URLhostname設(shè)置或返回當(dāng)前URL的主機名pathname設(shè)置或返回當(dāng)前URL的路徑部分port設(shè)置或返回當(dāng)前URL的端口號protocol設(shè)置或返回當(dāng)前URL的協(xié)議search設(shè)置或返回從問號(?)開始的URL(查詢部分)
7.1.2ESMPBOM4.location對象方法:assign()加載新的文檔,這與直接將一個URL賦值給Location對象的href屬性效果是一樣的。replace()用新的文檔替換當(dāng)前文檔,replace()方法不會在History對象中生成一個新的紀(jì)錄。當(dāng)使用該方法時,新的URL將覆蓋History對象中的當(dāng)前紀(jì)錄。7.1.2ESMPBOM4.location對象方法:reload()重新加載當(dāng)前文檔,若無參數(shù),或參數(shù)是false,就會用HTTP頭If-Modified-Since來檢測服務(wù)器上的文檔是否已改變。若文檔已改變,reload()會再次下載該文檔。否則該方法將從緩存中裝載文檔。這與用戶單擊瀏覽器的刷新按鈕的效果是完全一樣的。如果把該方法的參數(shù)設(shè)置為true,那么無論文檔的最后修改日期是什么,它都會繞過緩存,從服務(wù)器上重新下載該文檔。這與用戶在單擊瀏覽器的刷新按鈕時按住Shift健的效果是完全一樣。location2.html7.1.2ESMPBOM5.document對象每個載入瀏覽器的HTML文檔都會成為Document對象。它使我們可以從腳本中對HTML頁面中的所有元素進行訪問。7.1.2ESMPBOM5.document對象屬性:cookie設(shè)置或返回與當(dāng)前文檔有關(guān)的所有cookiedomain返回當(dāng)前文檔的域名referrer返回載入當(dāng)前文檔的文檔的URLtitle返回當(dāng)前文檔的標(biāo)題創(chuàng)建Cookie.html相同Origin策略的限制——同源策略對于JavaScript程序,存在相同Origin策略的限制,即同源策略。同源策略阻止從一個Origin加載的文檔或者腳本訪問從另一個Origin加載的文檔的屬性(即DOM)。如果協(xié)議、端口、主機相同,那么就認(rèn)為兩個文檔具有相同的Origin。相同Origin策略的限制——同源策略針對地址/dir/page.htmlURL匹配原因/dir2/other.htmlyeshttp:///dir/a/other.htmlyes:81/dir/etc.htmlno不同端口http:///dir/other.htmlno不同主機執(zhí)行設(shè)置:document.domain=“”;7.1.2ESMPBOM方法:clear()用來清除一個文檔中的內(nèi)容open()打開一個流,以收集來自任何document.write()或document.writeln()的輸出close()關(guān)閉用document.open()方法打開的輸出流,并顯示選定的數(shù)據(jù)write()向文檔寫HTML表達(dá)式或JavaScript代碼writeln()等同write()并在每個表達(dá)式之后寫一個換行符doc.html
、doc1.html7.1.3ESMPCoreDOMDocumentObjectModel,文檔對象模型。是W3C指定的一簇規(guī)范,它是獨立于平臺和語言的一系列接口定義。DOM是文檔在內(nèi)存中的表現(xiàn)形式,它是一個應(yīng)用程序接口,定義了該文檔的邏輯結(jié)構(gòu)以及一套訪問和處理文檔的方法。對應(yīng)的應(yīng)用程序可以跨語言跨平臺。7.1.3ESMPCoreDOM例如:客戶端瀏覽器是一個處理HTML和XML文檔的應(yīng)用程序,它必須將文檔解析成DOM才能夠以編程方式讀取、操作和呈現(xiàn)HTML、XML文檔。例如所有瀏覽器都支持使用DOM接口定義的方法來處理HTML文檔中的內(nèi)容、結(jié)構(gòu)和樣式,這樣可以減少對瀏覽器兼容性的考慮。DOM的起源DOM歷史可以追溯至1990年代后期微軟與Netscape的“瀏覽器大戰(zhàn)”,雙方為了在JavaScript與JScript一決生死,于是大規(guī)模的賦予瀏覽器強大的功能。微軟在網(wǎng)頁技術(shù)上加入了不少專屬事物,包括VBScript、ActiveX、以及微軟自家的DHTML格式等,使不少網(wǎng)頁使用非微軟平臺及瀏覽器無法正常顯示。DOM應(yīng)運而生。DOM的發(fā)展最初是一種讓JavaScript在瀏覽器間可移植的方法,不過其應(yīng)用已經(jīng)遠(yuǎn)遠(yuǎn)超出這個范圍。DOM技術(shù)使得用戶頁面可以動態(tài)地變化,如可以動態(tài)地顯示或隱藏一個元素,改變它們的屬性,增加一個元素等,DOM技術(shù)使得頁面的交互性大大地增強。DOM的分級根據(jù)W3CDOM規(guī)范,DOM是HTML與XML的應(yīng)用編程接口(API),DOM將整個頁面映射為一個由層次節(jié)點組成的文件。有1級、2級、3級共3個級別。DOM的分級根據(jù)W3CDOM規(guī)范,DOM是HTML與XML的應(yīng)用編程接口(API),DOM將整個頁面映射為一個由層次節(jié)點組成的文件。有1級、2級、3級共3個級別。1級DOM:由DOM核心與DOMHTML兩個模塊組成。DOM核心能映射以XML為基礎(chǔ)的文檔結(jié)構(gòu),允許獲取和操作文檔的任意部分。DOMHTML通過添加HTML專用的對象與函數(shù)對DOM核心進行了擴展。DOM的分級2級DOM:2級DOM通過對象接口增加了對鼠標(biāo)和用戶界面事件、范圍、遍歷和層疊樣式表(CSS)的支持。同時也對DOM1的核心進行了擴展,從而可支持XML命名空間。3級DOM:引入統(tǒng)一方式載入和保存文檔和文檔驗證方法對DOM進一步擴展,DOM3包含一個名為“DOM載入與保存”的新模塊,DOM核心擴展后可支持XML1.0的所有內(nèi)容,包擴XMLInfoset、XPath、和XMLBase。DOM的分級目前大部分瀏覽器軟件都可以部分獲取全部實現(xiàn)DOMlevel2規(guī)范簇,HTML5DOMAPI也是大量基于DOMlevel2規(guī)范簇的。HTML網(wǎng)頁加載DOM瀏覽器解析7.1.3ESMPCoreDOMW3C規(guī)定的三類DOM標(biāo)準(zhǔn)接口:CoreDOM(核心DOM),適用于各種結(jié)構(gòu)化文檔;XMLDOM,專用于XML文檔;HTMLDOM,專用于HTML文檔。ESMPCoreDOM僅定義了3種節(jié)點類型,即Document、Element、Text節(jié)點(nodeType返回9,1,3),并為每個節(jié)點規(guī)定了少量的方法和屬性。7.1.3ESMPCoreDOM1.DOMException屬性:message,獲取導(dǎo)致異常的消息字符串;code,獲取拋出的異常的類型,該屬性的返回值為一個整數(shù)。常量:見表7-37.1.3ESMPCoreDOM2.NodeNode對象是整個DOM的主要數(shù)據(jù)類型。節(jié)點對象代表文檔樹中的一個單獨的節(jié)點。節(jié)點可以是元素節(jié)點、屬性節(jié)點、文本節(jié)點等,可以通過節(jié)點查看器查看。node.html7.1.3ESMPCoreDOM2.Node根據(jù)DOM,HTML文檔中的每個成分都是一個節(jié)點。DOM是這樣規(guī)定的:整個文檔是一個文檔節(jié)點每個HTML標(biāo)簽是一個元素節(jié)點包含在HTML元素中的文本是文本節(jié)點每一個HTML屬性是一個屬性節(jié)點注釋屬于注釋節(jié)點7.1.3ESMPCoreDOM節(jié)點彼此都有等級關(guān)系。HTML文檔中的所有節(jié)點組成了一個文檔樹(或節(jié)點樹)。HTML文檔中的每個元素、屬性、文本等都代表著樹中的一個節(jié)點。樹起始于文檔節(jié)點,并由此繼續(xù)伸出枝條,直到處于這棵樹最低級別的所有文本節(jié)點為止。7.1.3ESMPCoreDOM屬性:nodeName:節(jié)點的名稱,只讀,元素節(jié)點名與標(biāo)簽名相同;屬性節(jié)點名是屬性的名稱;文本節(jié)點名永遠(yuǎn)是#text;文檔節(jié)點名永遠(yuǎn)是#document。nodeValue:節(jié)點的值。元素節(jié)點值是undefined;文本節(jié)點的值是文本自身;屬性節(jié)點的值是屬性的值。
nodeType
:節(jié)點的類型,只讀。7.1.3ESMPCoreDOM屬性:parentNode、childNode、firstChild、lastChild、previousSibling、nextSibling、attributes、ownerDocument、namespaceURI、prefix、localName方法:hasAttributes()、haschildNodes()、insertBefore()、replaceChild()、removeChild()、appendChild()、cloneNode()克隆節(jié)點.html、替換節(jié)點.html、遍歷結(jié)點樹.html7.1.3ESMPCoreDOM3.Document方法:getElementsByTagName()返回帶有指定標(biāo)簽名的所有元素,如:document.getElementsByTagName("p");getElementById()返回帶有指定ID的元素,如:document.getElementById("id");7.1.3ESMPCoreDOM3.Document方法:creatElement()、createTextNode()//創(chuàng)建一個P元素節(jié)點var
para=document.createElement("p");varnode=document.createTextNode("Thisisnew.");para.appendChild(node);createElement.html7.1.3ESMPCoreDOM4.NodeList當(dāng)使用諸如getElementsByTagName()或childNodes屬性或方法時,會返回NodeList
對象。NodeList
對象表示節(jié)點的列表。使用從0開始的下標(biāo)來訪問節(jié)點列表中的節(jié)點。NodeList
對象會保持自身的更新。如果刪除或添加了元素,列表會自動更新。7.1.3ESMPCoreDOM4.NodeList屬性:length列表中節(jié)點的數(shù)量,例如:x=document.getElementsByTagName(‘p').length;方法:item()返回節(jié)點列表中處于指定索引號的節(jié)點,如:item(index)index表示NodeList
中節(jié)點位置的整數(shù)。該值是大于等于0小于等于NodeList.length-1的整數(shù)。x=document.getElementsByTagName(‘p');for(i=0;i<x.length;i++){//僅顯示元素節(jié)點if(x.item(i).nodeType==1){
document.write(x.item(i).nodeName);
document.write("<br/>");}}7.1.3ESMPCoreDOM5.Element屬性:tagName方法:getAttribute()、setAttribute()、removeAttribute()、getElementsByTagName()、hasAttribute()element.html7.1.3ESMPCoreDOM6.Text屬性:data設(shè)置或返回元素或?qū)傩缘奈谋?、length返回元素或?qū)傩缘奈谋鹃L度方法:appendData()向節(jié)點追加數(shù)據(jù)、deleteData()從節(jié)點刪除數(shù)據(jù)、insertData()向節(jié)點中插入數(shù)據(jù)、replaceData()替換節(jié)點中的數(shù)據(jù)、substringData()從節(jié)點提取數(shù)據(jù)7.1.4ESMPHTMLDOMHTMLDOM定義了訪問和操作HTML文檔的專用API,它是對核心DOM的擴展,目前主流瀏覽器都支持。對核心DOM的擴展:指定和添加了特用于HTML文檔和元素的API。實現(xiàn)和DOMLevel0兼容。提供一種便利的機制用于對HTML文檔的一般性操作。7.1.4ESMPHTMLDOM1.document對象代表整個HTML文檔,可被用來訪問頁面中的所有元素。doc-links.htmldoc-form.html7.1.4ESMPHTMLDOM7.1.4ESMPHTMLDOM2.link元素對象屬性描述href設(shè)置或返回被鏈接資源的URLmedia設(shè)置或返回文檔顯示的設(shè)備類型name設(shè)置或返回<link>元素的名稱rel設(shè)置或返回當(dāng)前文檔與目標(biāo)URL之間的關(guān)系type設(shè)置或返回目標(biāo)URL的MIME類型<head><linkrel="stylesheet"type="text/css"id="style1"href="style1.css"/><scripttype="text/javascript">functionchangeStyle(){ document.getElementById("style1").href="style2.css";}</script></head>link對象.html7.1.4ESMPHTMLDOM3.form元素對象屬性或方法描述elements[]包含表單中所有元素的數(shù)組。action設(shè)置或返回表單的action屬性。enctype設(shè)置或返回表單用來編碼內(nèi)容的MIME類型。length返回表單中的元素數(shù)目。method設(shè)置或返回將數(shù)據(jù)發(fā)送到服務(wù)器的HTTP方法。name設(shè)置或返回表單的名稱。reset()把表單的所有輸入元素重置為它們的默認(rèn)值。submit()提交表單。form對象.html7.1.4ESMPHTMLDOM4.textinput元素對象屬性描述defaultValue設(shè)置或返回文本域的默認(rèn)值。form返回一個對包含文本域的表單對象的引用。maxLength設(shè)置或返回文本域中的最大字符數(shù)。name設(shè)置或返回文本域的名稱。size設(shè)置或返回文本域的尺寸。type返回文本域的表單元素類型。value設(shè)置或返回文本域的value屬性的值。7.1.4ESMPHTMLDOM4.textinput元素對象方法描述select()選取文本域中的內(nèi)容。blur()從文本域上移開焦點。focus()在文本域上設(shè)置焦點。text對象.html5.passwordinput元素對象屬性、方法:同text7.1.4ESMPHTMLDOM6.textarea元素對象屬性或方法描述cols設(shè)置或返回textarea
的寬度。form返回對包含該textarea
的表單對象的引用。name設(shè)置或返回textarea
的名稱。rows設(shè)置或返回textarea
的高度。type返回該文本框的表單類型。value設(shè)置或返回在textarea
中的文本。select()、blur()、focus()7.1.4ESMPHTMLDOM7.radioinput元素對象屬性:checked、defaultchecked、form、length、name、type、value方法:click()radio對象.html8.checkboxinput元素對象屬性、方法:同radio7.1.4ESMPHTMLDOM9.submitinput元素對象屬性:form、name、type、value方法:click()10.resetinput元素對象屬性:form、name、type、value方法:click()7.1.4ESMPHTMLDOM11.selectinput元素對象屬性:form、length、name、options[]返回包含下拉列表中的所有選項的一個數(shù)組、selectedIndex、size、type、value方法:add()、remove()向下拉列表添加或刪除一個選項。select對象.html7.1.4ESMPHTMLDOM12.option元素對象屬性:defaultSelected返回selected屬性的初始值、form、label、selected、text、value13.button元素對象屬性:form、name、type、value方法:blur()、click()、focus()option對象.html7.2使用JavaScript的注意事項
7.2.1檢測瀏覽器支持檢測是否支持兩個基本方法,以此來檢測是否有基本的DOM支持。functionhasBasicDOM(){ if(document.getElementById&&document.getElementByTagName) returntrue; returnfalse;7.2.1檢測瀏覽器支持DOM標(biāo)準(zhǔn)的檢測方式是使用DOMImplementation接口定義的hasFeature()方法,一般實現(xiàn)該接口的瀏覽器都會完全支持DOMLevel2,也可以檢測特定的支持項。格式:document.implementation.hasFeature(feature,version)7.2.1檢測瀏覽器支持feature定義要檢測的模塊名,見表7-4。version是要檢測的模塊的版本號。如不指定則檢測所有版本,只要一個支持就返回true。例如://獲得DOMImplementationif(document.implementation){varimplementation=document.implementation;if(implementation.hasFeature){ if(implementation.hasFeature(“XML”,”1.0”)) alert(“支持XML1.0”);
elsealert(“不支持XML1.0”);}}7.2.2關(guān)于打開新窗口避免使用window.open()方法和document.open()方法,因為并非所有手機瀏覽器均支持多窗口。不要使用window.showModalDialog()方法打開模式對話框,大部分手機瀏覽器都不支持該功能。7.2.3關(guān)于間隔調(diào)用setInterval()按照間隔指定的毫秒數(shù)循環(huán)執(zhí)行指定的代碼;clearInterval()取消對應(yīng)setInterval函數(shù)指定的循環(huán)。不要使用setInterval()方法進行間隔調(diào)用,建議使用setTimeout()方法來代替。因為在使用setInterval()方法進行間隔調(diào)用時,如果要調(diào)用的函數(shù)執(zhí)行時間超過間隔期就會導(dǎo)致不可預(yù)知的錯誤。打字機.html7.2.3關(guān)于間隔調(diào)用例如設(shè)置每100毫秒執(zhí)行一次函數(shù),但函數(shù)的操作時間需要200毫秒才能完成,這就可能導(dǎo)致異常,可能同時有兩個函數(shù)在運行。functionsomeFunction(){ //運行函數(shù)功能需要200毫秒}window.setInterval(someFunction,100);7.2.3關(guān)于間隔調(diào)用解決方法是用setTimeout()方法來代替。functionsomeFunction(){ //運行函數(shù)功能需要200毫秒
//執(zhí)行完成后,再次延遲100毫秒繼續(xù)
setTimeout(someFunction,100);}setTimeout(someFunction,100);7.2.4隱藏瀏覽器工具條使用window.scrollTo()方法可以將瀏覽器窗口中的文檔滾動到相對左上角指定x和y距離的位置。目前主流手機瀏覽器都支持該功能,因此可以用來隱藏工具條。window.scrollTo(0,1);7.2.4隱藏瀏覽器工具條一般來說,應(yīng)該在問的那個加載完成后再調(diào)用該方法,例如下面代碼,注冊load時間,在事件監(jiān)聽函數(shù)中調(diào)用該方法。<scripttype=“text/javascript”>addEventListener(“l(fā)oad”,hideURLbar,false);functionhideURLbar(){ window.scrollTo(0,1);}</script>7.2.4隱藏瀏覽器工具條有一種特殊情況是網(wǎng)頁太短導(dǎo)致不能滾動,這時要么為body元素設(shè)置min-height樣式屬性大于某個高度,要么使用下面的元數(shù)據(jù)聲明,使視點的高度等于設(shè)備的高度,這樣肯定超出了瀏覽器窗口可視高度,因此肯定會有滾動。<metaname=“viewport”content=“height=device-height”/>hideURLbar.html7.3定義和觸發(fā)事件手機上使用JavaScript另一個較大的不同就是對事件的處理,與桌面系統(tǒng)的差異明顯。另一個需要注意的就是IEMobile不支持W3C事件,所以必須尋找兼容性的方法,這與桌面上IE與其他瀏覽器的差別是相同的。一般定義如下函數(shù)來實現(xiàn)兼容:P1367.3.1基本交互事件鍵盤手機的事件處理很簡單,就是keydown、keypress、keyup,這與桌面一致。而觸摸屏手機則不同,如ondbclick和onmousewheel事件等都不適用于手機。觸摸屏手機沒有focus和blur事件,而都支持click事件。大多數(shù)也支持下面幾個連續(xù)事件:mouseover、mousemove、mousedown、mouseup、mouseoutcheckmouse.html7.3.2關(guān)于軟鍵盤事件對于觸摸屏,一般都是使用軟鍵盤,其出發(fā)的時間應(yīng)由change監(jiān)聽,軟鍵盤也有keydown、keypress、keyup事件。但若按按鍵時間長或連續(xù)按鍵會出現(xiàn)另一個字符,這些只有被寫到輸入框時才有辦法捕捉到。7.3.3感知手機握持方向和orientationchange事件iPhone和Android支持orientationchange事件,在手機旋轉(zhuǎn)時會觸發(fā),一般可以通過其判斷手機握持方向。下面是一個通用方法,根據(jù)幾個特定屬性的比較來確定手機握持的方向。7.4觸摸和手勢iPhone和Android支持觸摸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新聞媒體工作者簽證辦理指南
- 電影院電梯井道安裝及維護合同
- 商務(wù)旅游合同管理辦法
- 終止廣告合作意向書
- 員工團建活動激勵管理辦法
- 醫(yī)院施工協(xié)議
- 保險業(yè)務(wù)清運施工合同
- 圖書出發(fā)行費收據(jù)
- 醫(yī)院培訓(xùn)師招聘合同
- 臨時客服人員聘用協(xié)議
- 國標(biāo)導(dǎo)地線型號
- 外科休克教案課程
- 公務(wù)員申論答題標(biāo)準(zhǔn)格子紙版A4打印版
- 第六章休閑體育產(chǎn)業(yè)PPT課件
- SL/T212-2020 水工預(yù)應(yīng)力錨固技術(shù)規(guī)范_(高清-有效)
- 行政法對憲法實施的作用探討
- 檁條規(guī)格選用表
- 群青生產(chǎn)工藝過程
- 重拾作文ppt課件
- (整理)直流DF0241-JC-DL用戶手冊
- B2B第三方電子商務(wù)平臺——基于環(huán)球資源網(wǎng)模式分析
評論
0/150
提交評論