首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

评论输入插入表情

最近在做一个后台管理系统,要求可以对前台用户的作品进行评论,而评论要可以输入表情,常规的文字输入都是用的文本域textarea来做的,但这种输入只能输入文字,没有办法输入表情图标,这个时候可编辑div...就能起到作用了,那么如何在可编辑的div插入表情呢?...selection对象的 getRangeAt() 方法获得,实现在光标处插入图片后将光标移到图片后边,就是使用这两个对象的方法。...基本的实现步骤是这样的,首先获得 selection 选区对象,再获得范围对象 range,创建图片节点,将图片节点插入到范围,接着将范围收缩为它末端的一个点,最后将选区清除,将收缩后的范围重新添加到选区即可...range.insertNode(img); // 将选区折叠为一个插入点,为了兼容IE添加一个参数 range.collapse

4K10
您找到你想要的搜索结果了吗?
是的
没有找到

Python GTK+ 3 创建一个

盒子布局就是这样一个容器,它允许小部件水平或垂直堆叠,从而产生多功能和动态的用户界面设计。要在 Python 制作布局,请导入模块并配置 GTK+ 库。... __init__ 方法,初始化窗口并设置其标题、默认大小,并将“destroy”信号连接到Gtk.main_quit以处理窗口关闭。...再创建 2 个 Gtk.Label 小部件,label3 和 label4,并将它们垂直打包在 vbox 。 创建一个名为 window 的自定义实例。...自定义对象(窗口)和所有小部件都使用该窗口显示。显示全部“()。Gtk.main() 启动主 GTK 循环,该循环处理用户交互和事件。 输出具有一个自定义窗口,其中水平 Gtk 标签以样式分组。...垂直 GTK ,并排有两个标签。两个标签分层一个的顶部。 最大化窗口时,标签将更新。 结论 GTK +3 用于通过使用布局对窗口内的小部件进行分组来创建用户友好的界面。

29110

Word插入一个可以勾选和取消的方框

文章背景: 在工作,有时需要在表格内插入几个复选框,让用户去勾选,如下图所示。这种通过点击方框,自动打上对勾的效果如何实现呢?下面介绍一种方法。...操作步骤如下: (1)Word的开发工具菜单栏,选择带勾号的复选框,插入到word。 此时复选框既可以勾选,也可以取消勾选,但是勾选后是叉号(×),不是我们要的勾号(√)。...延伸阅读: 如果不使用控件箱带勾号的复选框,如何在Word插入一个带勾号的方框呢?下面介绍两种方法。...(2) 字母R转为勾号 把光标定位于需要插入勾选框的位置,输入大写字母R。选中字母R,鼠标右键,菜单栏中选择需要的字体Wingdings 2。点击确定,这时,R就变成了我们需要的打钩样式了。...参考资料: [1] 如何在word插入一个可以勾选和取消的方框(https://blog.csdn.net/qq_27445049/article/details/87883134) [2] word方框

2.1K40

python中使用pymysql往mysql数据插入(insert)数据实例

cs1.close() # 关闭connection对象 conn.close() if __name__ == '__main__': main() 补充拓展:记学习pymysql插入数据时的一次坑...在学习python时,做一个简单的mysql的操作,正确代码如下: import pymysql.cursors # 获取数据库连接 connection = pymysql.connect(...一个小问题确着实有点让人难受,在运行时它总报如下错误: ?...瞬间感觉好无奈,看看控制台的错误,完全没有定位到port这一行去,那一般都是提示错误的一行及以下查找原因,结果这次跑上面去了!!! 最后,数据类型该是啥就是啥,一定要细心,谨记谨记!...以上这篇python中使用pymysql往mysql数据插入(insert)数据实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

14.7K10

Excel实战技巧74: 工作表创建搜索来查找数据

本文主要讲解如何创建一个外观漂亮的搜索,通过它可以筛选数据并显示搜索结果。...如下图1所示,在数据区域上方放置有一个文本,用来输入要搜索的文本,其名称重命名为“MySearch”;一个用作按钮的矩形形状,点击它开始搜索并显示结果;两个选项按钮窗体控件,用来选择在数据区域的哪列进行搜索...图1 VBE插入一个标准模块,输入代码: Sub SearchData() Dim optButton As OptionButton Dim strButtonName As String...形状单击右键,如下图4所示。 ? 图4 选取“指定宏”命令,“指定宏”对话中选择宏名,如下图5所示。 ?...图5 可以在此基础上进一步添加功能,例如,搜索完成后,我想恢复原先的数据,可以工作表再添加一个代表按钮的矩形形状,如下图6所示。 ?

15.2K10

经验:MySQL数据,这4种方式可以避免重复的插入数据

,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下: 这里为了方便演示,我新建了一个user测试表,主要有id,username,sex,address这4...,测试SQL语句如下,当插入本条数据时,MySQL数据库会首先检索已有数据(也就是idx_username索引),如果存在,则忽略本次插入,如果不存在,则正常插入数据: ?...03 replace into 即插入数据时,如果数据存在,则删除再插入,前提条件同上,插入数据字段需要设置主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username...,这种方式适合于插入数据字段没有设置主键或唯一索引,当插入一条数据时,首先判断MySQL数据是否存在这条数据,如果不存在,则正常插入,如果存在,则忽略: ?...一个HTTP请求的曲折经历 Java 高并发之设计模式

4.4K40

react实现一个简单双向数据绑定

vue的双向数据绑定非常的方便,那么如何在react实现一个简单的双向数据绑定呢?...react实现一个简单的双向绑定 ---- 首先我们input添加一个onChange事件,然后把这个输入的value绑定到state <Input placeholder="商品名" onChange...state的值改变,input的value值也改变这样一个简单的双向数据绑定。 值得注意的是: 通过setState来修改state的值的话,它是异步的。...想要设置完后就获取里面的值需要在它第二个参数传递一个回调函数,在这个回调可以获取修改完的值 chongZhi (){ this.setState({ProductName:""},function...() { console.log(this.state.ProductName); }) } 封装事件处理 ---- 如果一个页面表单元素太多,每一个一个change对应的事件处理方法

3.8K10

EclipsePHP studio使用集锦

中看惯了每行前面带有行号,其实设置很简单,打开文件,ctrl+f10看到显示行号了吗?...settings–选中use project settings就可以对独立的单个项目进行配置了、 附:网上找的快捷键,和大家分享下~~ 一,资源操作: Ctrl+Shift+R:打开”打开资源”对话,...然后再输入输入过滤字符查找并打开文件 Ctrl+Shift+E:显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作) Ctrl+E:快速显示当前Editer的下拉列表,然后可通过输入过滤字符或上下键选择切换文件...Ctrl+Z:返回到修改前的状态(编写代码时的后悔药) Ctrl+Y:撤销上面的返回(即后悔的后悔药) Ctrl+/:注释当前行,再按则取消注释 Ctrl+,:一个文件快速定位到存在问题的行(如错误...:在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是行尾) Ctrl+Shift+Enter:在当前行的上一行插入空行(原理同上条) Ctrl+Shif+O:PHP站点(可自定义搜索源

82640

Shell四剑客实操案例

jfedu.txt每行后加入空行,也即每行占永两行空间,每一行后边插入一行空行、两行空行及前三行每行插入空行: sed ‘/^$/d;G’ jfedu.txtsed ‘/^$/d;G;G’ jfedu.txtsed...匹配行前一行、后一行插入空行以及同时匹配前后插入空行: sed ‘/jfedu/{x;p;x;}’ jfedu.txtsed ‘/jfedu/G’ jfedu.txtsed ‘/jfedu/{x;p;...x;G;}’ jfedu.txt jfedu.txt每行后加入空行,也即每行占永两行空间,每一行后边插入空行: sed ‘/^$/d;G’ jfedu.txt jfedu.txt每行后加入空行,...也即每行占永两行空间,每一行后边插入空行: sed ‘/^$/d;G’ jfedu.txt jfedu.txt每行前加入顺序数字序号、加上制表符\t及.符号: sed = jfedu.txt| sed...AWK基本原理是逐行处理文件数据,查找与命令行中所给定内容相匹配的模式,如果发现匹配内容,则进行下一个编程步骤,如果找不到匹配内容,则 继续处理下一行。

2.1K21

notepad++正则表达式替换字符串

,解决方法如下 解决: 替换对话,启用“正则表达式”复选框 查找内容里面输入“345” 这里“”表示从行尾匹配 如果从行首匹配,可以用“^”来实现,不过 EditPlus 有另一个功能可以很简单的删除行首的字符串...②、单击“查找内容”组合右侧的按钮,出现下拉菜单。 ③、下面的操作添加正则表达式,该表达式代表待查找的空行。...(2)选择“字符范围”,那么“^”后会增加一对括号“[]”,当前插入点在括号。括号正则表达式中表示,文本的字符匹配括号任意一个字符 即符合查找条件。 (3)按一下空格键,添加空格符。...空格符是空行一个组成成分。 (4)选择“制表符”,添加代表制表符的“/t”。 (5)移动光标,将当前插入点移到“]”之后,然后选择“匹配 0 次或更多”,该操作会添加星号字符“*”。...星号表示,其前面的括号“[]”内的空格符或制表符,一行中出现0个或多个。 (6)选择“换行符”,插入“/n”,表示回车符。 ④、“替换为”组合保持空,表示删除查找到的内容。

4K10

EditPlus正则表达式替换字符串详解

,解决方法如下 解决: 替换对话,启用“正则表达式”复选框 查找内容里面输入“345” 这里“”表示从行尾匹配 如果从行首匹配,可以用“^”来实现,不过 EditPlus 有另一个功能可以很简单的删除行首的字符串...②、单击“查找内容”组合右侧的按钮,出现下拉菜单。 ③、下面的操作添加正则表达式,该表达式代表待查找的空行。...(2)选择“字符范围”,那么“^”后会增加一对括号“[]”,当前插入点在括号。括号正则表达式中表示,文本的字符匹配括号任意一个字符即符合查找条件。 (3)按一下空格键,添加空格符。...空格符是空行一个组成成分。 (4)选择“制表符”,添加代表制表符的“\t”。 (5)移动光标,将当前插入点移到“]”之后,然后选择“匹配 0 次或更多”,该操作会添加星号字符“*”。...星号表示,其前面的括号“[]”内的空格符或制表符,一行中出现0个或多个。 (6)选择“换行符”,插入“\n”,表示回车符。 ④、“替换为”组合保持空,表示删除查找到的内容。

1.8K20

文本编辑器及文本处理 文本编辑器介绍 常见的Linux文本编辑器有: emacs nano gedit kedit vi vimLinux文本编辑器-emacs emacs是一款功能强大的

普通模式,有很多方法可以进入插入模式。比较普通的方式是按"a"(append/追加)键或者"i"(insert/插入)键。 插入模式:在这个模式,大多数按键都会向文本缓冲区插入文本。...这个时候暂时进入普通模式,执行完一个命令之后,Vim返回插入模式 插入可视模式:这个模式是插入模式下按下ctrl-o键并且开始一个可视选择的时候开始。可视区域选择取消的时候,Vim返回插入模式。...替换模式:这是一个特殊的插入模式,在这个模式可以做和插入模式一样的操作,但是每个输入的字符都会覆盖文本缓冲已经存在的字符。普通模式下按"R"键进入。...替换 :1,5s/word1/word2/g 将文档1-5行的word1替换为word2,不加g则只替换每行的第一个word1。...将几个文件合并为一个文件,cat file1 file2 > file3 cat常用选项有: -n:从1开始对所有行编号并显示每行开头 -b:从1开始对非空行编号并显示每行开头 -s:当有多个空行在一起时只输出一个空行

59340

华为认证欧拉openEuler-HCIA文本编辑器及文本处理

普通模式,有很多方法可以进入插入模式。比较普通的方式是按"a"(append/追加)键或者"i"(insert/插入)键。 插入模式:在这个模式,大多数按键都会向文本缓冲区插入文本。...这个时候暂时进入普通模式,执行完一个命令之后,Vim返回插入模式 插入可视模式:这个模式是插入模式下按下ctrl-o键并且开始一个可视选择的时候开始。可视区域选择取消的时候,Vim返回插入模式。...替换模式:这是一个特殊的插入模式,在这个模式可以做和插入模式一样的操作,但是每个输入的字符都会覆盖文本缓冲已经存在的字符。普通模式下按"R"键进入。...替换 :1,5s/word1/word2/g 将文档1-5行的word1替换为word2,不加g则只替换每行的第一个word1。...将几个文件合并为一个文件,cat file1 file2 > file3 cat常用选项有: -n:从1开始对所有行编号并显示每行开头 -b:从1开始对非空行编号并显示每行开头 -s:当有多个空行在一起时只输出一个空行

31840

如何判断一个元素亿级数据是否存在?

实际情况也是如此;既然要判断一个数据是否存在于集合,考虑的算法的效率以及准确性肯定是要把数据全部 load 到内存的。...BurtonHowardBloom 1970 年提出了一个叫做 BloomFilter(中文翻译:布隆过滤)的算法。...它主要就是用于解决判断一个元素是否一个集合,但它的优势是只需要占用很小的内存空间以及有着高效的查询效率。 所以在这个场景下在合适不过了。...其实 set 方法是 BitArray 一个函数, BitArray 就是真正存放数据的底层数据结构。 利用了一个 long[]data 来存放数据。... set 之前先通过 get() 判断这个数据是否存在于集合,如果已经存在则直接返回告知客户端写入失败。 接下来就是通过位运算进行 位或赋值。

1.3K20

如何判断一个元素亿级数据是否存在?

实际情况也是如此;既然要判断一个数据是否存在于集合,考虑的算法的效率以及准确性肯定是要把数据全部 load 到内存的。...BurtonHowardBloom 1970 年提出了一个叫做 BloomFilter(中文翻译:布隆过滤)的算法。...它主要就是用于解决判断一个元素是否一个集合,但它的优势是只需要占用很小的内存空间以及有着高效的查询效率。 所以在这个场景下在合适不过了。...其实 set 方法是 BitArray 一个函数, BitArray 就是真正存放数据的底层数据结构。 利用了一个 long[]data 来存放数据。... set 之前先通过 get() 判断这个数据是否存在于集合,如果已经存在则直接返回告知客户端写入失败。 接下来就是通过位运算进行 位或赋值。

1.3K30
领券