最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript tabIndex屬性

 更新時間:2009年12月09日 04:36:53   作者:  
圍繞表單的可訪問性與交互性上,各瀏覽器都下了很大工夫,比如fieldset與legend等用于增強(qiáng)區(qū)域感的元素,for,accessKey,defaultValue,maxlength,tabIndex等用于交互或提示的屬性。不過,今天只講tabIndex。
tabIndex 的用處很簡單,就是利用tab鍵遍歷頁面的表單元素和鏈接,按照tabindex的大小決定順序。雖然微不足道,但細(xì)節(jié)處見真功夫,這是任何一個WEB應(yīng)用應(yīng)當(dāng)具備的親用力,保證用戶在沒有鼠標(biāo)的情況下(如WAP)仍然可以正常使用。

下面的例子,為了突現(xiàn)tabIndex控制焦點(diǎn)跳轉(zhuǎn)的能力,特意把順序打亂了。請先選中第一個文本域,然后按tab鍵觀察。

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

根據(jù)這篇文章的介紹,W3C DOM與Netscape僅是把tabIndex添加到有限的幾個元素上:a, area, button, input, object, select, textarea,也就是所謂的表單元素與鏈接。IE4則比它多以下元素: applet, body, div, embed, isindex, marquee, span, table, 與td,到了IE5,幾乎所有能渲染的元素都擁有這屬性(像br元素就是不能渲染的)。tabIndex的值,根據(jù)W3C的規(guī)定,范圍在0到 32767。

在jQuery的源碼中,講到attr部分提供了一條鏈接,是專門說明如何用javascript設(shè)置獲取與移除tabIndex屬性,不過已有些日子了,許多主流瀏覽器都更新了版本。因此我再測試了一次。測試程序見下面的運(yùn)行框:


[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

tabindex為1的input元素 IE6 IE7 IE8 FF3.55 opeta10.10 Safari4.0 chrome4.02
el.tabIndex 1 1 1 1 1 1 1
el.getAttribute("tabindex") 1 1 1 1 1 1 1
el.getAttribute("tabIndex") 1 1 1 1 1 1 1

此表格與《Getting, setting, and removing tabindex values with JavaScript》一文中對應(yīng)的表格相比,全部為1。

我們再來看當(dāng)表單元素沒有顯示地設(shè)置tabIndex屬性時,tabIndex是否存在,存在的話其默認(rèn)值是多少。

沒有tabIndex的input元素 IE6 IE7 IE8 FF3.55 opeta10.10 Safari4.0 chrome4.02
el.tabIndex 0 0 0 0 0 0 0
el.getAttribute("tabindex") 0 0 0 null null null null
el.getAttribute("tabIndex") 0 0 0 null null null null

如果測試對象為一個沒有顯式設(shè)置tabIndex屬性的div元素呢?在W3C標(biāo)準(zhǔn)中,只有表單元素與鏈接才能tabIndex屬性。

沒有tabIndex的div元素 IE6 IE7 IE8 FF3.55 opeta10.10 Safari4.0 chrome4.02
el.tabIndex 0 0 0 -1 -1 -1 -1
el.getAttribute("tabindex") 0 0 0 null null null null
el.getAttribute("tabIndex") 0 0 0 null null null null

我們看這篇文章,標(biāo)準(zhǔn)瀏覽器的設(shè)定其涇渭分明,-1給那些不該擁有它的元素,0是默認(rèn)分配給那些表單元素與鏈接,如果用戶定義了就返回用戶的認(rèn)定值,即便它是div。

不過在IE中,非表單元素與鏈接無論tabIndex是否定義都返回0,那么我們怎么知道元素是否已定義過呢?《Getting, setting,……》給出一個非常好的辦法。利用getAttributeNode 獲取對應(yīng)的屬性節(jié)點(diǎn)。在IE中,如果是默認(rèn)屬性或已定義屬性,將會返回一個對象,標(biāo)準(zhǔn)瀏覽器則只有當(dāng)我們顯示地設(shè)置這屬性時才返回對象,其他一律為null。在IE中,如果是默認(rèn)屬性,沒有為其賦值,它有一個特殊的specified ,顯示為false,如果賦值了,則為true。標(biāo)準(zhǔn)瀏覽器沒有這東西,也不需要此東西。

再看為沒有tabIndex屬性元素賦值的情況el.tabIndex=value就不用說了,肯定行得通,dom 0年代的實(shí)現(xiàn)。如果一個元素用setAttribute("tabIndex",3)賦值,注意是大寫,那么無論是el.tabIndex還是el.getAttribute("tabIndex")還是el.getAttribute("tabindex")都能得到3。如果是setAttribute("tabindex",3)賦值,IE則全為0,標(biāo)準(zhǔn)瀏覽器則全為3,因此還是用前者吧。

沒有tabIndex的input元素 IE6 IE7 IE8 FF3.55 opeta10.10 Safari4.0 chrome4.02
el.tabIndex=3 3 3 3 3 3 3 3
el.setAttribute("tabIndex",3) 3 3 3 3 3 3 3
el.setAttribute("tabindex",3) 0 0 0 3 3 3 3

最后移除屬性的情況,移除結(jié)果后分別用el.tabIndex,el.getAttribute("tabIndex"),el.getAttribute("tabindex")測試。誰都沒有把握移除干凈,從目前的情況來看,只有選擇el.removeAttribute("tabIndex")。

tabIndex為3的input元素 IE6 IE7 IE8 FF3.55 opeta10.10 Safari4.0 chrome4.02
el.removeAttribute("tabIndex") 0,0,0 0,0,0 0,0,0 0,null,null 0,null,null 3,null,null 3,null,null
el.removeAttribute("tabindex") 3,3,3 3,3,3 3,3,3 0,null,null 0,null,null 3,null,null 3,null,null
delete el.tabIndex errer errer errer 3,3,3 0,null,null 3,3,3 undefined,null,null

相關(guān)文章

  • JavaScript原生數(shù)組函數(shù)實(shí)例匯總

    JavaScript原生數(shù)組函數(shù)實(shí)例匯總

    這篇文章主要介紹了JavaScript原生數(shù)組函數(shù)實(shí)例匯總,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • xmlplus組件設(shè)計(jì)系列之圖標(biāo)(ICON)(1)

    xmlplus組件設(shè)計(jì)系列之圖標(biāo)(ICON)(1)

    這篇文章主要為大家詳細(xì)介紹了xmlplus組件設(shè)計(jì)系列之圖標(biāo)ICON的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • JavaScript讀取XML文件的幾種方法

    JavaScript讀取XML文件的幾種方法

    XML是一種標(biāo)記語言,用于存儲和傳輸數(shù)據(jù),它是從SGML簡化而來的,XML經(jīng)常被用來在不同的應(yīng)用程序之間或同一個應(yīng)用程序的不同部分之間交換數(shù)據(jù),同時還可以用于網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù)配置和信息存儲,在JavaScript中,通常有幾種方法,需要的朋友可以參考下
    2025-01-01
  • Add a Table to a Word Document

    Add a Table to a Word Document

    Add a Table to a Word Document...
    2007-06-06
  • firebug的一個有趣現(xiàn)象介紹

    firebug的一個有趣現(xiàn)象介紹

    在FIREBUG里如果一個對象同時擁有l(wèi)ength屬性和splice方法,就會被firebug顯示為數(shù)組的形式
    2011-11-11
  • Peer.js 構(gòu)建視頻聊天應(yīng)用使用詳解

    Peer.js 構(gòu)建視頻聊天應(yīng)用使用詳解

    這篇文章主要為大家介紹了Peer.js 構(gòu)建視頻聊天應(yīng)用使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 手把手教你如何排查Javascript內(nèi)存泄漏

    手把手教你如何排查Javascript內(nèi)存泄漏

    本文將通過一些常見的FAQ來帶大家一起學(xué)習(xí)一下怎么用工具定位javascript里的內(nèi)存問題,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-06-06
  • js wmp操作代碼小結(jié)(音樂連播功能)

    js wmp操作代碼小結(jié)(音樂連播功能)

    js對于wmp的一些屬性與方法,方便大家控制音樂的播放的一些細(xì)節(jié)
    2008-11-11
  • 微信小程序?qū)崿F(xiàn)表單校驗(yàn)功能

    微信小程序?qū)崿F(xiàn)表單校驗(yàn)功能

    微信小程序最難實(shí)現(xiàn)的公共業(yè)務(wù)是什么?應(yīng)該是表單校驗(yàn),這篇文章主要介紹了微信小程序如何實(shí)現(xiàn)表單校驗(yàn)功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • JavaScript實(shí)現(xiàn)echarts水球圖百分比展示大屏可視化

    JavaScript實(shí)現(xiàn)echarts水球圖百分比展示大屏可視化

    這篇文章主要為大家介紹了JavaScript實(shí)現(xiàn)echarts水球圖百分比展示大屏可視化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10

最新評論

中阳县| 田东县| 德阳市| 三河市| 紫阳县| 夹江县| 鄂托克旗| 九江县| 威远县| 读书| 桃江县| 会昌县| 青河县| 叶城县| 仁化县| 新安县| 松滋市| 儋州市| 普宁市| 疏附县| 土默特右旗| 香格里拉县| 调兵山市| 亳州市| 祁门县| 正蓝旗| 津南区| 抚松县| 陇川县| 英山县| 隆化县| 湾仔区| 进贤县| 武陟县| 涿州市| 西平县| 密云县| 裕民县| 孝昌县| 盐池县| 莲花县|