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

關(guān)于textarea的直觀換行的一些研究材料

 更新時(shí)間:2006年10月07日 00:00:00   作者:  
前兩天研究了一下textarea的直觀行的換行規(guī)律,挺復(fù)雜?。?

直觀行怎樣取不光要看cols大小,還要看網(wǎng)頁(yè)編碼方式。
cols="30"的textarea,實(shí)際上每行可以容納29個(gè)半角字符,多少個(gè)全角字符就不一定了,與網(wǎng)頁(yè)編碼方式有關(guān)。
在IE6.0實(shí)測(cè)的情況,直觀行的換行發(fā)生在紅字處(紅字折到下一行)。

dddddddddddd米ddddddddddddddddddddd //全角后面的連續(xù)半角內(nèi)容被當(dāng)成一個(gè)完整單詞處理,如果剩下的位置容不下單詞的長(zhǎng)度了,就要換行,此為特殊規(guī)律A

網(wǎng)頁(yè)按Unicode編碼(“運(yùn)行代碼”的彈出頁(yè)面即按此編碼,JS生成的頁(yè)面均按此編碼)時(shí)的一般規(guī)律是

(“占滿”是說(shuō)后面無(wú)論再跟全角、半角字符,都得換行)

123456789012345678901234567890 //29半角占滿
一二三四五六七八九十一二三四五六七八九十 //17全角占滿
一二三四五六七八九十一二三四五六七0八九十
一二三四五六七八九十一二三四五六0七八九十 
0一二三四五六七八九十一二三四五六1七八九十 //16全角,1半角占滿
0一二三四五六七八九十一二三四五六七八九十
0一二三四五六七八九十一二三四五1六七八九十 //15全角,2半角后不可容全角
01一二三四五六七八九十一二三四五六七八九十
01一二三四五六七八九十一二三四五2六七八九十 //15全角,2半角后可再容1半角(多于1半角時(shí)按特殊規(guī)律A)
012一二三四五六七八九十一二三四五六七八九十 //15全角,3半角占滿
012一二三四五六七八九十一二三四五3六七八九十
0123一二三四五六七八九十一二三四五六七八九十 //14全角,4半角后不可容全角
0123一二三四五六七八九十一二三四4五六七八九十 //14全角,4半角后可再容1半角(多于1半角時(shí)按特殊規(guī)律A)
01234一二三四五六七八九十一二三四五六七八九十 //14全角,5半角占滿
01234一二三四五六七八九十一二三四5五六七八九十
012345一二三四五六七八九十一二三四五六七八九十 //13全角,6半角后不可容全角
012345一二三四五六七八九十一二三6四五六七八九十 //13全角,6半角后可容1半角(多于1半角時(shí)按特殊規(guī)律A)
0123456一二三四五六七八九十一二三四五六七八九十 //13全角,7半角占滿
0123456一二三四五六七八九十一二三7四五六七八九十
01234567一二三四五六七八九十一二三四五六七八九十 //12全角,8半角占滿
01234567一二三四五六七八九十一二8三四五六七八九十
012345678一二三四五六七八九十一二三四五六七八九十 //11全角,9半角后不可容全角
012345678一二三四五六七八九十一9二三四五六七八九十 //11全角,9半角后可再容1半角(多于1半角時(shí)按特殊規(guī)律A)
0123456789一二三四五六七八九十一二三四五六七八九十 //11全角,10半角占滿

……

0一二三四五六七八九十一二三四五12六七八九十 //15全角,1半角后可再容2半角連續(xù)字符(多于2半角時(shí)按特殊規(guī)律A),此條可由15全角,3半角占滿得出

……

0一二三四五六七八九十一二三四1234五六七八九十 //14全角,1半角后可再容4半角連續(xù)字符(多于4半角時(shí)按特殊規(guī)律A),此條可由14全角,5半角占滿得出

……

01一二三四五六七八九十一二三四234五六七八九十 //14全角,2半角后可再容3半角連續(xù)字符(多于3半角時(shí)按特殊規(guī)律A),此條可由14全角,5半角占滿得出

……
換行位置不僅與換行位置之前的整行文字有關(guān),還與紅字有關(guān)(往往全角文字是因?yàn)闊o(wú)法在上行末尾擠下才被折到下一行的)。

總結(jié)一下就有:


CODE:[Copy to clipboard]x全角,y半角占滿 = x全角,y-1半角后不可容全角 = x全角,y-n半角后可再容n半角連續(xù)字符(多于n半角時(shí)按特殊規(guī)律A)。
所以做實(shí)驗(yàn)搞清楚所有“占滿”的情形就可以了。

現(xiàn)將cols=30,網(wǎng)頁(yè)按Unicode編碼時(shí)的“占滿”情況列出:

17全角
16全角,1半角
15全角,3半角
14全角,5半角
13全角,7半角
12全角,8半角
11全角,10半角
10全角,12半角
9全角,13半角
8全角,15半角
7全角,17半角
6全角,19半角
5全角,21半角
4全角,22半角
3全角,24半角
2全角,26半角
1全角,28半角
29半角

利用瀕于發(fā)生按特殊規(guī)律A換行的情形,很容易測(cè)出所有“占滿”的情形:
例如,一二三四五六七八九十012345678912一二三四五六七八九十 //10全角,12半角占滿
一二三四五六七八九十0123456789123一二三四五六七八九十 //紅字處按特殊規(guī)律A換行,藍(lán)字處按9全角,13半角占滿換行

cols=30,網(wǎng)頁(yè)按GB2312編碼時(shí),“占滿”規(guī)律不同了:

14全角,1半角
13全角,3半角
12全角,5半角
11全角,7半角
10全角,9半角
9全角,11半角
8全角,13半角
7全角,15半角
6全角,17半角
5全角,19半角
4全角,21半角
3全角,23半角
2全角,25半角
1全角,27半角
29半角

這樣的話,要根據(jù)網(wǎng)頁(yè)的編碼方式和cols,通過實(shí)驗(yàn)具體才能測(cè)出“占滿”規(guī)律。

從textarea內(nèi)容的開頭起計(jì)算全角和半角字符的數(shù)目,根據(jù)“占滿”規(guī)律及特殊規(guī)律A決定第一個(gè)直觀換行的位置,再?gòu)牡诙校òㄎ锢硇泻椭庇^行)起計(jì)算全角和半角字符的數(shù)目,根據(jù)“占滿”規(guī)律及特殊規(guī)律A決定第二個(gè)直觀換行的位置……如是繼續(xù)下去,直到textarea內(nèi)容的末尾。這樣就可以得到所有的換行位置了。

當(dāng)然實(shí)際應(yīng)用時(shí)沒必要也沒可能這樣做實(shí)驗(yàn)啦,比如說(shuō)選中textarea的第X行到第Y行,還沒了解官方的辦法是怎樣的,我是這么辦的:

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


04 年初寫的東西,應(yīng)該是目前研究比較全面的了吧??

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

根據(jù)被某網(wǎng)站匿名轉(zhuǎn)載的頁(yè)面( http://dl.pconline.com.cn/html_2/4/545/id=38457&pn=0.html )上的網(wǎng)友留言,上面的《JS實(shí)現(xiàn)文本域的任意行選定》示例代碼有一處bug:即在滾動(dòng)條不在頂端的情況下運(yùn)行示例代碼會(huì)出錯(cuò)?,F(xiàn)已修正:只增加了一行代碼


CODE:
src.scrollTop=0 //確保開始數(shù)行數(shù)時(shí)滾動(dòng)條位于頂部

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

相關(guān)文章

最新評(píng)論

铜山县| 白银市| 巴彦淖尔市| 卢湾区| 南丹县| 安塞县| 龙门县| 霍邱县| 延津县| 玉环县| 滨州市| 天峻县| 霍山县| 封丘县| 渝北区| 阜南县| 合水县| 濮阳县| 塘沽区| 定日县| 嘉义市| 四子王旗| 玉环县| 基隆市| 台南县| 铜梁县| 古交市| 会理县| 苏尼特右旗| 锡林郭勒盟| 永兴县| 苏州市| 澄迈县| 突泉县| 烟台市| 海伦市| 兰考县| 遂宁市| 南昌市| 海晏县| 泰宁县|