可编辑div:contenteditable之ctrl+enter换行,enter发送

本文介绍了一种使用可编辑DIV实现同时输入文字和表情的方法,并提供了具体的JavaScript代码实现细节,包括如何处理回车键发送消息及Ctrl+回车实现换行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中遇到需要在输入文字的同时输入表情,web微信用的pre,没搞懂怎么弄,所以用了可编辑div。。

        //发送消息可编辑div
        //回车发消息
        $("#textarea").keydown(function($event){
            var keycode = window.event ? $event.keyCode : $event.which;
            var evt = $event || window.event;
            var inputTxt = $(this);
            // 回车-->发送消息
            if (keycode == 13 && !(evt.ctrlKey)) {
                // 发送消息的代码
                woohecc.send_msg();
                $event.preventDefault();
                return false;
            }
            // ctrl+回车-->换行
            if (evt.ctrlKey && evt.keyCode == 13) {
                inputTxt.html(inputTxt.html() + '<br>');
                woohecc.placeCaretAtEnd(inputTxt.get(0));
                return false;
            }
        });
var woohecc = {
    placeCaretAtEnd : function(el) {
            el.focus();
            if (typeof window.getSelection != "undefined"
                && typeof document.createRange != "undefined") {
                var range = document.createRange();
                range.selectNodeContents(el);
                range.collapse(false);
                var sel = window.getSelection();
                sel.removeAllRanges();
                sel.addRange(range);
            }
            else if (typeof document.body.createTextRange != "undefined") {
                var textRange = document.body.createTextRange();
                textRange.moveToElementText(el);
                textRange.collapse(false);
                textRange.select();
            }
        },
    }
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值