已有40人关注
老师您好,请教个php开发实例大全中第三章169 功能无法实现问题。jsp代码实现在文本框中支持tab键,按照书中的代码,按tab键文本框还是会失去焦点啊。但在文本框中并没有体现出缩进。
发表在PHP图书答疑 2016-12-18
是否精华
版块置顶:

<script type="text/javascript">

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;

    }

}

</script>


分享到:
精彩评论 1
木木初
学分:482 LV5
TA的每日心情
伤心
2017-09-04 22:27:56
2016-12-19
沙发

请在IE浏览器下运行该实例。

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照