成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

純js 文本復(fù)制功能

Winer / 2416人閱讀

摘要:最近在項(xiàng)目中需要點(diǎn)擊復(fù)制的功能,然后百度看了一下網(wǎng)上的各種方法,有引用插件的不太理想,一個(gè)功能就引用一個(gè)插件,代碼太冗余了,有自己封裝的可能技術(shù)發(fā)展比較快,有些都失效了,但是根據(jù)他們的介紹,自己找到相關(guān)的,總結(jié)了一下,適用于方法一使用和對(duì)象

最近在項(xiàng)目中需要點(diǎn)擊復(fù)制的功能,然后百度看了一下網(wǎng)上的各種方法,有引用插件的(不太理想,一個(gè)功能就引用一個(gè)插件,代碼太冗余了),有自己封裝的(可能技術(shù)發(fā)展比較快,有些都失效了),但是根據(jù)他們的介紹,自己找到相關(guān)的API,總結(jié)了一下,適用于Chrome Firefox (Gecko) Internet Explorer(9+) Opera Safari

方法一:使用Selection和Range對(duì)象 第一步
創(chuàng)建一個(gè)Range對(duì)象
let range = document.createRange()
// 傳入需要選中的元素節(jié)點(diǎn)
range.selectNodeContents(Node節(jié)點(diǎn))
創(chuàng)建一個(gè)Selection對(duì)象
var selection = document.getSelection()
// 清空選中的區(qū)域
selection.removeAllRanges()
// 添加選中區(qū)域
selection.addRange(range)
調(diào)用復(fù)制
document.execCommand("Copy")
Code
function copyHandler(node){
    let range = document.createRange()
    range.selectNodeContents(node)
    let selection = document.getSelection()
    selection.removeAllRanges()
    selection.addRange(range)
    document.execCommand("Copy")
}

方法二:使用input和textarea元素的select()方法
弊端

需要?jiǎng)?chuàng)建多余的標(biāo)簽,而且input和textarea必須顯示,設(shè)置以下任何一個(gè)樣式都不起作用:

display:none
visibility:hidden
width:0
height:0

還是直接上代碼看吧

html
fa020e90e7de4bd0d399ezvzvvzvz58a5fab92f7