记一个复制黏贴的功能想法(黏贴剪切板中的数字自增,复制黏贴自增)

原创 2016年06月01日 10:34:42
起因
         照例是要写起因的,起因非常之简单,不知道大家有没有遇到过需要输入连续的  id= 101 ~ id = 110 这类数字的时候,这个时候能做的基本上是复制100,黏贴100,然后手动改 101,102,在我的脑海里,除了使用excel ,其他没有很方便的可以复制黏贴自增序列的办法。
         问了度娘,好像目前市面上的软件基本上也不带这个功能,哪怕是经常会有录入操作的报表,报账等等系统(统统没有这个功能,心疼财务). 很好奇这个看起来并不复杂的小功能却没人去做。
         作为程序员,忍不住就简单的设计了下,如果是内嵌在软件里的,可以 是这样: ctrl+ c+1 复制 ->  ctrl+ v 的时候就自动 +1 ,再按就+ 2,如果 ctrl+ c+2 复制 ->  ctrl+ v 的时候就自动 +2 ,再按就+ 4, 依次累加。

实现

       一般软件也没有办法去改,于是抱着玩和学习的目的决定做个浏览器插件。由于一直后台从来没有做过前端或者插件(看了下,涉及到的东西博大精深),请大神们对我这个初心者轻喷。。
       一开始想通过直接编辑系统剪切板来完成,这种方法最直接,最有效 ,语句:
Document.execCommand('copy')
        可惜的是,这个函数因为安全考虑只有在为数不多的版本中支持(如图)。
       
         无奈只能改变策略通过JS 监听  paste事件来完成,将复制内容从事件剪切板  clipboardData (这玩意相当于浏览器剪切板,和系统的不是一回事,但是系统的会先放到这儿,再放到浏览器上) 中取出时候做处理。种方法优点是简单很多,但是缺点也很明显,举个例子,比如云笔记的输入时,对方同样监听了 paste ,并且 e.preventDefault(); 停止了消息传递,我们这个插件也就没法继续工作了 。 语句:
document.addEventListener( 'paste', function (event){})
        上面的方法拿到剪切板的值后,后续过程就很容易了。先判断是否是数字,再判断右上配置是否开启了自增功能,最后判断是否还是同一个值的paste操作 , 如果都满足,统计总计paste的次数,把数字加上这个值,然后输出。。

        总体就是这样,很简单的一个小玩具,总之并不复杂,我觉得功能的意义大于程序的意义。有产品或者交互的同学可以考虑下在某些特定环境软件中加入这个小功能哦!


附件
git 地址: https://github.com/NickTree/Chrome_CountPaste
打开后在chrome 中选择 扩展程序 -> 加载压缩的扩展程序 -> 右上就会有小图标 ,浏览器版本适应性啥的完全没测过,反正就当个原型吧。

js 字符串中数字自增

function addstrnums(str) { var tmp = str.replace(/[^0-9]/ig, ""); var pos = str.indexOf(tmp)...
  • wyljz
  • wyljz
  • 2016年01月05日 17:27
  • 3816

Excel中带字母的数字序列自增实现方法

示例: 在A1单元格输入以下公式,然后向下填充公式 =".mr"&ROW()&" {margin-right: "&ROW()&"px;}" 公式中考虑了数字前后的空格 实现效果: 由此...
  • archer119
  • archer119
  • 2016年08月25日 10:19
  • 1728

JSP如何实现数据自增

在JSP页面中使用c标签可以实现数据的自增关键在于的varStatus属性,具体代码如下:  序号 姓名 ${ status.ind...
  • jining521
  • jining521
  • 2015年05月20日 15:03
  • 1943

Java实现id自增的字符串类型的数字编号

一些id标识的要求,比如数字自增,0001,0002,0003等。下面这个方法实现了这个功能: 思路:int a;a++;fillchar(); 贴代码: public class mainTest ...
  • HYM1987
  • HYM1987
  • 2013年11月27日 17:28
  • 6013

Cocos2d-x中C++与OC的混编实现剪切板的复制粘贴

首先,在Cocos中我们如果要对当前系统的剪切板进行编辑的话,就必须先判断当前用的是什么系统 于是我们在预编译的时候先判断一下系统(本篇只讲iOS): void ClipboardHelper::...
  • u012926027
  • u012926027
  • 2015年12月29日 12:15
  • 2453

Django模板中的数字如何实现自增?

本文和大家分享的主要是django模板中数字自增相关内容,一起来看看吧,希望对大家学习django有所帮助。   Django框架的模板提供了{% for %} 标签来进行循环   例如对...
  • qq_32506555
  • qq_32506555
  • 2017年09月07日 19:26
  • 480

使用java代码实现简单的ID自增的工具类

在一些简单的业务中可能需要一些ID.这些ID是使用java代码实现的并不是通过数据库的自增实现的.下面是我写的一个简单的ID工具类,在使用的过程中你需要将最后一次的编号保存下来,你可以建一张表来维护这...
  • MyPersonalSong
  • MyPersonalSong
  • 2018年01月04日 15:02
  • 138

闲来无需要事写了个自增编号的方法

在实际业务中我们可能会碰到会生成某个业务编号,比如订单号、运单号等等...用户下订单就会生成编号编号前面可能会根据业务id+xxx+编号进行生成  这里我就不再讨论业务了。主要讲述后面编号生成,我这里...
  • Jason763
  • Jason763
  • 2016年11月12日 19:35
  • 251

mysql mysql SELECT 自增数显示

select (@i:=@i+1) as i, openid,number,share,phonetime from mask,(select @i:=0) as it where ph...
  • davissuperman
  • davissuperman
  • 2015年07月24日 11:19
  • 1980

java/*用一个整数,不断自增*/

AtomicInteger id=new AtomicInteger(0);     for(int i=0;i     System.out.println(id.incrementAndGet...
  • z90818
  • z90818
  • 2015年01月13日 14:16
  • 325
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:记一个复制黏贴的功能想法(黏贴剪切板中的数字自增,复制黏贴自增)
举报原因:
原因补充:

(最多只允许输入30个字)