記一個複製黏貼的功能想法(黏貼剪下板中的數字自增,複製黏貼自增)
阿新 • • 發佈:2019-02-13
起因
照例是要寫起因的,起因非常之簡單,不知道大家有沒有遇到過需要輸入連續的 id= 101 ~ id = 110 這類數字的時候,這個時候能做的基本上是複製100,黏貼100,然後手動改 101,102,在我的腦海裡,除了使用excel ,其他沒有很方便的可以複製黏貼自增序列的辦法。
問了度娘,好像目前市面上的軟體基本上也不帶這個功能,哪怕是經常會有錄入操作的報表,報賬等等系統(統統沒有這個功能,心疼財務). 很好奇這個看起來並不複雜的小功能卻沒人去做。
作為程式設計師,忍不住就簡單的設計了下,如果是內嵌在軟體裡的,可以 是這樣: ctrl+ c+1 複製 -> ctrl+ v 的時候就自動 +1 ,再按就+ 2,如果 ctrl+ c+2 複製 -> ctrl+ v 的時候就自動 +2 ,再按就+ 4, 依次累加。
實現
一般軟體也沒有辦法去改,於是抱著玩和學習的目的決定做個瀏覽器外掛。由於一直後臺從來沒有做過前端或者外掛(看了下,涉及到的東西博大精深),請大神們對我這個初心者輕噴。。
一開始想通過直接編輯系統剪下板來完成,這種方法最直接,最有效 ,語句:
無奈只能改變策略通過JS 監聽 paste事件來完成,將複製內容從事件剪下板 clipboardData (這玩意相當於瀏覽器剪下板,和系統的不是一回事,但是系統的會先放到這兒,再放到瀏覽器上) 中取出時候做處理。種方法優點是簡單很多,但是缺點也很明顯,舉個例子,比如雲筆記的輸入時,對方同樣監聽了 paste ,並且 e.preventDefault(); 停止了訊息傳遞,我們這個外掛也就沒法繼續工作了
。 語句:
附件
git 地址: https://github.com/NickTree/Chrome_CountPaste
開啟後在chrome 中選擇 擴充套件程式 -> 載入壓縮的擴充套件程式 -> 右上就會有小圖示 ,瀏覽器版本適應性啥的完全沒測過,反正就當個原型吧。
Document.execCommand('copy')
可惜的是,這個函式因為安全考慮只有在為數不多的版本中支援(如圖)。
document.addEventListener( 'paste', function (event){})
上面的方法拿到剪下板的值後,後續過程就很容易了。先判斷是否是數字,再判斷右上配置是否開啟了自增功能,最後判斷是否還是同一個值的paste操作 , 如果都滿足,統計總計paste的次數,把數字加上這個值,然後輸出。。
總體就是這樣,很簡單的一個小玩具,總之並不複雜,我覺得功能的意義大於程式的意義。有產品或者互動的同學可以考慮下在某些特定環境軟體中加入這個小功能哦!