使用JS如何實現貼上簿複製功能
本文給大家分析20行JS程式碼實現黏貼簿功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
使用剪貼簿是一項基本技能。身為碼農都應知道, Tab , Ctrl/Cmd A , Ctrl / Cmd C 以及 Ctrl / Cmd V 分別是自動對焦、複製、貼上的快捷鍵。
而對一般使用者可能就不太容易了。即使使用者知道剪貼簿是什麼,(除了)那些眼神極好或反應很快的人,其他情況下很難以突出顯示他們想要的確切文字。若使用者不知道鍵盤快速鍵,也看不到隱藏的編輯選單,或從未使用右鍵選單或不知道長按觸控螢幕彈出選項選單,那麼他很可能無法察覺到複製功能。
那麼我們是否應該提供一個「複製到剪貼簿」按鈕來幫助使用者?這功能應該會很有用,即使是對快捷鍵的人非常熟悉的使用者來說。
關於剪貼簿的安全性
幾年前,瀏覽器不可能直接使用剪貼簿。開發人員不得不透過Flash來實現。
剪貼簿看起來無關緊要,但想像一下,如果瀏覽器能夠隨意查看和操作內容,會發生什麼。 JS腳本(包括第三方腳本)可查看剪貼簿內的文字訊息,並將密碼,敏感資訊甚至整個文件傳送到遠端伺服器。
現在的剪貼簿基本功能有限,有以下限制:
大多數瀏覽器支援剪貼簿,除了Safari。
支援因瀏覽器而異 ,有些功能不完整或有問題。
事件必須由使用者必須發起,例如點擊滑鼠或按下鍵盤。腳本不能自由存取剪貼簿。
document.execCommand()
此方法就是實作剪貼簿的關鍵,它可以傳入cut , copy , paste 三種參數。從最常用的 document.execCommand('copy')
開始介紹。
在使用之前,我們應該檢查瀏覽器是否支援copy 命令: document.queryCommandSupported('copy');
或document.queryCommandEnabled('copy');
,這兩個方法效果相同。
但在Chrome下,儘管Chrome確實支援使用 copy 命名,但兩個方法都傳回 false 。所以最好是將檢查程式碼包在一個 try-catch 程式碼區塊中。
下一步,我們該允許使用者複製什麼呢?必須反白顯示文本,所有瀏覽器都可用 select() 方法選擇文本input和textarea內的文本。同時Firefox和Chrome / Opera也支援 document.createRange
方法,該方法允許從任何元素中選擇文本,如下:
// select text in #myelement node var myelement = document.getElementById('#myelement'), range = document.createRange(); range.selectNode(myelement); window.getSelection().addRange(range);
但IE / Edge不支援。
clipboard.js
如果你不想自己實作一個較為健壯的跨瀏覽器剪貼簿方法的話, clipboard.js 可以幫你。它有好幾種設定選項的方式,如H5的data屬性,設定綁定觸發元素以及目標元素,如:
<input id="copyme" value="text in this field will be copied" /> <button data-clipboard-target="#copyme">copy</button>
自己動手實作
clipboard .js大小只有2Kb,若只實作如下的部分功能的話,那麼可以在20行的程式碼內實作:
##僅部分錶元素可被複製
若在不支援的瀏覽器中(沒錯,就是指Safari),可反白顯示選取文本,並提示使用者按Ctrl / Cmd C 。 就像clipboard.js一樣,先建立一個button用於觸發方法,它具有一個data屬性data-copytarget ,指向要copy的元素(即#website )<input type="text" id="website" value="http://www.sitepoint.com/" /> <button data-copytarget="#website">copy</button> 一个立即执行函数表达式绑定click事件的函数,该函数用于解析 data-copytarget 属性内容,选择对应字段的文本并执行 document.execCommand('copy') ,。若失败,文本保持选中状态,显示提示框: (function() { 'use strict'; // click events document.body.addEventListener('click', copy, true); // event handler function copy(e) { // find target element var t = e.target, c = t.dataset.copytarget, inp = (c ? document.querySelector(c) : null); // is element selectable? if (inp && inp.select) { // select text inp.select(); try { // copy text document.execCommand('copy'); inp.blur(); } catch (err) { alert('please press Ctrl/Cmd+C to copy'); } } } })();
- 透過.select() 選擇要複製的表單元素的內容
- 呼叫document.execCommand( "copy") 方法
- 呼叫.blur() 方法,從表單元素移除焦點
- 將第2、3步驟包在try catch 區塊中,在不支援的瀏覽器下則提示
#其他方式
有許多新穎的剪貼簿應用方式。例如 Trello.com ,將滑鼠停留在卡片上時,可以按 Ctrl / Cmd C 並將該卡片的連結位址複製到剪貼簿。背後實現的方式為:先建立一個包含URL的隱藏表單元素,然後勾選並複製其內容。非常巧妙且實用 —— 我懷疑很少有用戶知道這個功能!
以上是使用JS如何實現貼上簿複製功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

如何使用JS和百度地圖實現地圖平移功能百度地圖是一款廣泛使用的地圖服務平台,在Web開發中經常用於展示地理資訊、定位等功能。本文將介紹如何使用JS和百度地圖API實作地圖平移功能,並提供具體的程式碼範例。一、準備工作使用百度地圖API前,首先需要在百度地圖開放平台(http://lbsyun.baidu.com/)上申請一個開發者帳號,並建立一個應用程式。創建完成

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

股票分析必備工具:學習PHP和JS繪製蠟燭圖的步驟,需要具體程式碼範例隨著網路和科技的快速發展,股票交易已成為許多投資者的重要途徑之一。而股票分析是投資人決策的重要一環,其中蠟燭圖被廣泛應用於技術分析。學習如何使用PHP和JS繪製蠟燭圖將為投資者提供更多直觀的信息,幫助他們更好地做出決策。蠟燭圖是一種以蠟燭形狀來展示股票價格的技術圖表。它展示了股票價格的

如何使用PHP和JS創建股票蠟燭圖股票蠟燭圖是股票市場中常見的技術分析圖形,透過繪製股票的開盤價、收盤價、最高價和最低價等數據,幫助投資者更直觀地了解股票的價格波動情形。本文將教你如何使用PHP和JS創建股票蠟燭圖,並附上具體的程式碼範例。一、準備工作在開始之前,我們需要準備以下環境:1.一台運行PHP的伺服器2.一個支援HTML5和Canvas的瀏覽器3

如何使用JS和百度地圖實現地圖熱力圖功能簡介:隨著互聯網和行動裝置的快速發展,地圖成為了普遍的應用場景。而熱力圖作為一種視覺化的展示方式,能夠幫助我們更直觀地了解數據的分佈。本文將介紹如何使用JS和百度地圖API來實現地圖熱力圖的功能,並提供具體的程式碼範例。準備工作:在開始之前,你需要準備以下事項:一個百度開發者帳號,並建立一個應用,取得到對應的AP

如何使用JS和百度地圖實現地圖點擊事件處理功能概述:在網路開發中,經常需要使用地圖功能來展示地理位置和地理資訊。而地圖上的點擊事件處理是地圖功能中常用且重要的一環。本文將介紹如何使用JS和百度地圖API來實現地圖的點擊事件處理功能,並給出具體的程式碼範例。步驟:匯入百度地圖的API檔案首先,要在HTML檔案中匯入百度地圖API的文件,可以透過以下程式碼實現:

隨著網路金融的快速發展,股票投資已經成為了越來越多人的選擇。而在股票交易中,蠟燭圖是常用的技術分析方法,它能夠顯示股票價格的變動趨勢,幫助投資人做出更精準的決策。本文將透過介紹PHP和JS的開發技巧,帶領讀者了解如何繪製股票蠟燭圖,並提供具體的程式碼範例。一、了解股票蠟燭圖在介紹如何繪製股票蠟燭圖之前,我們首先需要先了解什麼是蠟燭圖。蠟燭圖是由日本人

如何使用JS和百度地圖實現地圖多邊形繪製功能在現代網頁開發中,地圖應用程式已成為常見的功能之一。而地圖上繪製多邊形,可以幫助我們將特定區域標記,方便使用者進行檢視和分析。本文將介紹如何使用JS和百度地圖API實現地圖多邊形繪製功能,並提供具體的程式碼範例。首先,我們需要引入百度地圖API。可以利用以下程式碼在HTML檔案中導入百度地圖API的JavaScript
