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

摘要:
    //回车发消息$scope.keyDownSend=function{varkeycode=window.event?contet){sendErrorTipsMsg;}//发送消息后清除类$.removeClass;};
     //回车发消息
        $scope.keyDownSend = function($event) {
            var keycode = window.event?$event.keyCode:$event.which;
            var evt = $event ||window.event;
            var inputTxt = document.getElementById("contentText");
            //回车-->发送消息
            if(keycode==13 && !(evt.ctrlKey)){
                sendMessage();
                $event.preventDefault();
                return false;
            }
            //ctrl+回车-->换行
            if (evt.ctrlKey && evt.keyCode == 13) {
                var #contenText = $('#contenText');
                #contenText_opt.html(#contenText_opt.html() + '<br>');
                placeCaretAtEnd(#contenText.get(0));
                return false;
            }
functionplaceCaretAtEnd(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();
            }
        }
//发消息
        $scope.send_test = function($event) {
            var contet = $('#contenText').html().replace(/&nbsp;/g, ' ').replace(/&amp;/g, '&');
            if($($event.target).hasClass('on')){
                sendErrorTipsMsg(contet);
                sendMessageTxt();
            } else if (!contet){
                sendErrorTipsMsg(ErrorContent);
            }
            //发送消息后清除类
            $($event.target).removeClass('current');
        };

免责声明:文章转载自《div,contenteditable编辑器之ctrl+enter换行,enter发送》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇kettle内存溢出wxPython中文教程入门实例下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

将多个json文件合并一个json

哈哈,刚开始的时候一脸蒙逼,后来有个开发的朋友给的意见,写一下哈哈 // 数据 var datas=[   {       "goods_id":1   },   {     "goods_id":1   },   {     "goods_id":1   } ] // 数据的名字 var  names=[   {     name:'bai'   },...

VSFTP服务

概述: FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP(File Transfer Protocol: 文件传输协议)作用: Internet 上用来传送文件的协议 常见FTP服务器: windows:Serv-U FTP Server L...

JS实现input中输入数字,控制每四位加一个空格(银行卡号格式)

前言 今天来讲讲js中实现input中输入数字,控制每四位加一个空格的方法!这个主要是应用于我们在填写表单的时候,填写银行卡信息,要求我们输入的数字是四位一个空格!今天主要介绍两种方式来实现这个方法!但是都运用到了键盘码。下面我就列举一下键盘码,以备后面查阅! 键盘各按键对应的数字 keycode 8 = BackSpace | keyc...

读取Excel文件利器LinqToExcel,比NOPI好用

由于项目要用到读excel文件存入数据库中,前一段时间也找到了NOPI试了一下,觉得还好,但是读取xlsx就报错  之后本人在google上找到了LinqToExcel 先上代码  private void LinqToExcel(string fileName)         {             var excelFile = new Exc...

Openlayers 实现轨迹播放/暂停/重新播放/从点击处播放/提速/减速

说明: 我的需求是需要实现轨迹播放/暂停/重新播放/从点击处播放,因此封装了一个类 解决方案: 1、初始化:主要是处理一下图层以及数据,通过插值构造一个全局数组 /** * @description 初始化轨迹 */ (function init() { //地图容器 that....

JS获取上一个月的本月的上一个月或者下个月的实现

今天在做需求的时候 做到了需要获取本月的上个月的信息 就是直接获取上一个月的日期看了网上很多的都差不多 比如下面这个 也是没问题的都是互相的抄袭 我做了一个比较简单 只用实现当前月的上一个月即可 所以也比较简单 var now = new Date(); if (now.getMonth() == 0){ document.getElementBy...