国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JS復(fù)制粘貼功能實現(xiàn)

這篇具有很好參考價值的文章主要介紹了JS復(fù)制粘貼功能實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

JS復(fù)制粘貼功能實現(xiàn)

本章記錄如何通過js代碼實現(xiàn)復(fù)制內(nèi)容到剪切板,之后可以粘貼到需要的地方的功能。

分為兩個部分內(nèi)容:

  • 前兩個部分使用execCommand方法,該方法現(xiàn)在被棄用(ps:雖然也還可以用就行了), 且對于單行內(nèi)容的復(fù)制需要結(jié)合input標(biāo)簽實現(xiàn),多行內(nèi)容的復(fù)制需要結(jié)合textarea標(biāo)簽實現(xiàn)。

  • 第三個部分,則是現(xiàn)在使用Clipboard API來實現(xiàn)單行或多行內(nèi)容的復(fù)制。(推薦方法)

1-execCommand方法

該方法是在document對象下的方法,現(xiàn)已被棄用,但在這里考慮到以前已經(jīng)使用過這樣的方法實現(xiàn)復(fù)制功能了,也寫在這里,現(xiàn)在仍然可用。

單行復(fù)制

通過input標(biāo)簽將需要復(fù)制的內(nèi)容傳遞給value屬性,之后通過document對象下execCommand方法執(zhí)行復(fù)制功能即可。

具體實現(xiàn)如下:

handleCopy() {
  let copy_text = '需要復(fù)制的內(nèi)容';//拿到想要復(fù)制的值
  
  let input_dom = document.createElement('input');//創(chuàng)建input元素
  input_dom.value = copy_text;//添加需要復(fù)制的內(nèi)容到value屬性
  document.body.appendChild(input_dom);//向頁面底部追加輸入框
  input_dom.select();//選擇input元素
  document.execCommand("Copy");//執(zhí)行復(fù)制命令
  alert("復(fù)制成功!");//彈出提示信息,不同組件可能存在寫法不同
  
  //復(fù)制之后再刪除元素,否則無法成功賦值
  input_dom.remove();//刪除動態(tài)創(chuàng)建的節(jié)點
},

上面的方法在頁面需要觸發(fā)復(fù)制功能的時候添加到對應(yīng)鼠標(biāo)事件即可。

多行復(fù)制

通過textarea標(biāo)簽將需要復(fù)制的內(nèi)容傳遞給value屬性,并在需要換行的內(nèi)容后面加入換行符\r\n,之后通過document對象下execCommand方法執(zhí)行復(fù)制功能即可。

具體實現(xiàn)如下:

handleCopy() {
  let copy_text = '第一行需要復(fù)制的內(nèi)容\r\n第二行需要復(fù)制的內(nèi)容';//拿到想要復(fù)制的值
  
  let textarea_dom = document.createElement('textarea');//創(chuàng)建textarea元素
  document.body.appendChild(textarea_dom);//向頁面底部追加輸入框
  textarea_dom.value = copy_text; //添加需要復(fù)制的內(nèi)容到value屬性
  textarea_dom.select();//選擇input元素
  document.execCommand("Copy");//執(zhí)行復(fù)制命令
  alert("復(fù)制成功!");//彈出提示信息,不同組件可能存在寫法不同
  
  //復(fù)制之后再刪除元素,否則無法成功賦值
  document.body.removeChild(textarea_dom); //刪除動態(tài)創(chuàng)建的節(jié)點
}

上面的方法在頁面需要觸發(fā)復(fù)制功能的時候添加到對應(yīng)鼠標(biāo)事件即可。

2-Clipboard API(推薦)

Clipboard API中的 navigator.clipboard.writeText 方法可以更加簡單的實現(xiàn)單行和多行的內(nèi)容復(fù)制,而且該方法會返回一個Promise對象,可以幫助我們簡單處理復(fù)制成功或復(fù)制失敗后需要執(zhí)行的內(nèi)容。

具體實現(xiàn)如下:

handleCopy() {
  let copy_text = '第一行需要復(fù)制的內(nèi)容\r\n第二行需要復(fù)制的內(nèi)容';//拿到想要復(fù)制的值
  
  // 使用Clipboard API復(fù)制文本到剪貼板中
  navigator.clipboard.writeText(copy_text).then(() => {
    alert("復(fù)制成功!")
  }).catch((err)=>{
    alert("復(fù)制失?。?)
  })
}

上面的方法在頁面需要觸發(fā)復(fù)制功能的時候添加到對應(yīng)鼠標(biāo)事件即可,且在復(fù)制內(nèi)容中,直接支持換行符的實現(xiàn)。

注意:

上面的navigator.clipboard.writeText方法只有在游覽器的navigator對象下才會存在clipboard對象;如果你是在vue,react等前端框架中像上面的方法調(diào)用clipboard對象,是不存在的。

因為在這類前端框架中編寫js的環(huán)境下的navigator對象并沒有提供clipboard對象,而且clipboard對象并不是navigator對象的標(biāo)準(zhǔn)屬性或方法。

因此,在這類框架中需要使用Clipboard API需要通過第三方依賴的方法去實現(xiàn)。

下面以常見的vue框架中使用Clipboard API為例:

1、首先按照第三方Clipboard依賴

npm install clipboard --save

2、在頁面文件中引入或在main.js全局引入

import Clipboard from 'clipboard'

3、在需要實現(xiàn)復(fù)制功能的方法中,寫入實現(xiàn)

<template>
	<div>
    <div class="copy_dom" @click="handleCopy"></div>
  </div>
</template>

<script>
import Clipboard from 'clipboard';
export default {
  data: {
    clipboard: null
  }
  methods: {
  	handleCopy() {
      // 傳遞事件綁定的元素class名和需要復(fù)制的內(nèi)容text,創(chuàng)建Clipboard實例 
	  this.clipboard = new Clipboard('.copy_dom', {
        text: () => {
          return '第一行需要復(fù)制的內(nèi)容\r\n第二行需要復(fù)制的內(nèi)容'
        }
      });
      // 復(fù)制成功后的回調(diào)函數(shù)
      this.clipboard.on('success', () => {
        // 釋放內(nèi)存,非常重要,不然會重復(fù)觸發(fā)回調(diào)函數(shù)
		this.clipboard.destroy();
        console.log('復(fù)制成功!');
      })
     	// 復(fù)制失敗后的回調(diào)函數(shù)
      this.clipboard.on('error', function(e) {
        console.log('復(fù)制失??!');
      })
		}
  },
  //beforeDestroy() {
  //  this.clipboard.destroy(); //組件頁面銷毀時,需要手動清理clipboard,釋放內(nèi)存
  //}
}
</script>

上面的代碼中,clipboard實例在復(fù)制成功后,建議在success的回調(diào)函數(shù)中執(zhí)行實例銷毀的destroy方法;也可以在頁面組件關(guān)閉后的beforeDestroy生命周期執(zhí)行銷毀方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-653096.html

到了這里,關(guān)于JS復(fù)制粘貼功能實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • js 粘貼功能

    js 粘貼功能

    項目中需要使用粘貼功能,將已復(fù)制的內(nèi)容粘貼到輸入框中。(vue項目使用elementUI,該粘貼功能是瀏覽器自帶功能,屬于通用功能) html js css JavaScript:實現(xiàn)復(fù)制粘貼剪切功能

    2024年01月24日
    瀏覽(16)
  • 安卓:實現(xiàn)復(fù)制粘貼功能

    安卓:實現(xiàn)復(fù)制粘貼功能

    目錄 一、介紹 (一)ClipboardManager介紹 1、ClipboardManager常用方法: 2、獲取?ClipboardManager實例 (二)、ClipData介紹 1、創(chuàng)建ClipData對象: 2、獲取ClipData的信息: 3、ClipData.Item對象: 二、 例子 復(fù)制粘貼的輔助類ClipboardHelper :? ?MainActivity: ?activity_main: ?運行結(jié)果: ? ? Cli

    2024年02月07日
    瀏覽(24)
  • 編程實現(xiàn)對某個文件的復(fù)制功能——右鍵可粘貼

    作者:小 琛 歡迎轉(zhuǎn)載,請標(biāo)明出處 實現(xiàn)功能:傳入一個文件的完整路徑,實現(xiàn)運行代碼后,該文件被復(fù)制——相當(dāng)于鼠標(biāo)右鍵,復(fù)制功能。

    2024年02月15日
    瀏覽(28)
  • Vue-Clipboard3:輕松實現(xiàn)復(fù)制到粘貼板功能

    在現(xiàn)代Web開發(fā)中,剪貼板操作變得越來越重要。用戶經(jīng)常需要在瀏覽器中進行復(fù)制、粘貼等操作,而這些操作可以通過JavaScript實現(xiàn)。Vue-Clipboard3是一個基于Clipboard.js的粘貼板操作庫,使用 Vue-Clipboard3 可以在Vue 3(composition api)中輕松復(fù)制到粘貼板,它使得在Vue3應(yīng)用程序中進行

    2024年01月20日
    瀏覽(23)
  • 前端js如何實現(xiàn)截屏功能,插件推薦js-web-screen-shot

    前端js如何實現(xiàn)截屏功能,插件推薦js-web-screen-shot

    讀取dom結(jié)構(gòu)轉(zhuǎn)換成canvas,最后轉(zhuǎn)成圖片形式展示 缺點 :沒有編輯功能 鏈接:html2canvas 大佬模仿qq截圖實現(xiàn)的,也可以搭配webrtc實現(xiàn)web端遠程桌面共享 鏈接: github gitee 簡單使用 注意點:

    2024年02月06日
    瀏覽(27)
  • vue+face-api.js實現(xiàn)前端人臉識別功能

    vue+face-api.js實現(xiàn)前端人臉識別功能

    近期做了一個前端vue實現(xiàn)人臉識別的功能,主要功能邏輯包含:人臉識別,人臉驗證,喚起攝像頭視頻流之后從三個事件(用戶點頭、搖頭、眨眼睛)中隨機選中兩個事件,待兩個事件通過判斷后人臉靜止不動3秒鐘后截取視頻流生成圖片,上傳到阿里或者騰訊oss,通過oss返回

    2024年02月05日
    瀏覽(25)
  • 有趣且重要的JS知識合集(18)瀏覽器實現(xiàn)前端錄音功能

    有趣且重要的JS知識合集(18)瀏覽器實現(xiàn)前端錄音功能

    兼容多個瀏覽器下的前端錄音功能,實現(xiàn)六大錄音功能: 1、開始錄音 2、暫停錄音 3、繼續(xù)錄音 4、結(jié)束錄音 5、播放錄音 6、上傳錄音 初始狀態(tài): 開始錄音: 結(jié)束錄音: 錄音流程 : 示例中的三個按鈕其實包含了六個上述功能,點擊開始時開始錄音,可以暫停/結(jié)束錄音,此

    2024年02月04日
    瀏覽(22)
  • 使用JavaScript和Vue.js框架開發(fā)的電子商務(wù)網(wǎng)站,實現(xiàn)商品展示和購物車功能

    引言: 隨著互聯(lián)網(wǎng)的快速發(fā)展和智能手機的普及,電子商務(wù)行業(yè)正迎來一個全新的時代。越來越多的消費者選擇網(wǎng)上購物,而不再局限于傳統(tǒng)的實體店。這種趨勢不僅僅是改變了消費者的習(xí)慣購物,也給企業(yè)帶來了巨大的商機。為了不斷滿足消費者的需求,電子商務(wù)網(wǎng)站需要

    2024年02月15日
    瀏覽(26)
  • vue elementui 實現(xiàn)從excel從復(fù)制多行多列后粘貼到前端界面el-table

    可以全部復(fù)制粘貼,也可以單獨對某行、某列進行復(fù)制粘貼 從excel復(fù)制粘貼到前端頁面的table上 html部分: js部分:

    2024年02月04日
    瀏覽(29)
  • 擴展element-ui el-upload組件,實現(xiàn)復(fù)制粘貼上傳圖片文件,帶圖片預(yù)覽功能

    擴展element-ui el-upload組件,實現(xiàn)復(fù)制粘貼上傳圖片文件,帶圖片預(yù)覽功能

    控件改造 在窗口的 el-form 控件參數(shù)中添加 @paste.native 事件,事件綁定方法名 handlePaste 也可以在其他控件中添加事件監(jiān)聽,看個人需求。 注意: 監(jiān)聽粘貼事件時,需要當(dāng)前頁面先獲取焦點,否則無法正常監(jiān)聽, 可以在頁面加載后調(diào)用 focus() 獲取焦點 粘貼功能Js部分參考資料

    2023年04月08日
    瀏覽(124)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包