| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 596 人关注过本帖
标题:帮忙写个关于“Tab 键在文本域中体现”教程的注释
只看楼主 加入收藏
lilt2008
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-8-29
结帖率:0
收藏
 问题点数:0 回复次数:0 
帮忙写个关于“Tab 键在文本域中体现”教程的注释
大家好,以下代码红色部分麻烦帮忙写个注释,硬是看不懂!!!
程序的功能:就是在textarea中能使用TAB键(ASCII码为:9)进行排版
BODY中的代码:<textarea cols="30" name="text" rows="3" onkeydown="editTab()"></textarea>
JS中的代码:
function editTab()
{
    var code, sel, tmp, r
    var tabs=""
    event.returnValue = false
    sel =event.srcElement.document.selection.createRange()
    r = event.srcElement.createTextRange()
    switch (event.keyCode)
    {
        case (8)    :
            if (!(sel.getClientRects().length > 1))
            {
                event.returnValue = true
                return
            }
            code = sel.text
            tmp = sel.duplicate()
            tmp.moveToPoint(r.getBoundingClientRect().left, sel.getClientRects()[0].top)
            sel.setEndPoint("startToStart", tmp)
            sel.text = sel.text.replace(/^\t/gm, "")
            code = code.replace(/^\t/gm, "").replace(/\r\n/g, "\r")
            r.findText(code)
            r.select()
            break
        case (9)    :
            if (sel.getClientRects().length > 1)
            {
                code = sel.text
                tmp = sel.duplicate()
                tmp.moveToPoint(r.getBoundingClientRect().left, sel.getClientRects()[0].top)
                sel.setEndPoint("startToStart", tmp)
                sel.text = "\t"+sel.text.replace(/\r\n/g, "\r\t")
                code = code.replace(/\r\n/g, "\r\t")
                r.findText(code)
                r.select()
            }
            else
            {
                sel.text = "\t"
                sel.select()
            }
            break
        case (13)    :
            tmp = sel.duplicate()
            tmp.moveToPoint(r.getBoundingClientRect().left, sel.getClientRects()[0].top)
            tmp.setEndPoint("endToEnd", sel)

            for (var i=0; tmp.text.match(/^[\t]+/g) && i<tmp.text.match(/^[\t]+/g)[0].length; i++)    tabs += "\t"
            sel.text = "\r\n"+tabs
            sel.select()
            break
        default        :
            event.returnValue = true
            break
    }
}


搜索更多相关主题的帖子: function false 
2011-07-07 19:16
快速回复:帮忙写个关于“Tab 键在文本域中体现”教程的注释
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017544 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved