作者:JavaScript前端(梓超) 注:此文章為頭條號原創,特此聲明!
一、原理分析
瀏覽器提供了 copy 命令 ,可以復制選中的內容
document.execCommand("copy")
如果是輸入框,可以通過 select() 方法,選中輸入框的文本,然后調用 copy 命令,將文本復制到剪切板
但是 select() 方法只對 <input> 和 <textarea> 有效,對于 <p> 就不好使
最后我的解決方案是,在頁面中添加一個 <textarea>,然后把它隱藏掉
點擊按鈕的時候,先把 <textarea> 的 value 改為 <p> 的 innerText,然后復制 <textarea> 中的內容
二、代碼實現
HTML 部分
按 Ctrl+C 復制代碼
按 Ctrl+C 復制代碼
JS 部分
<script type="text/javascript"> function copyText() { var text = document.getElementById("text").innerText; var input = document.getElementById("input"); input.value = text; // 修改文本框的內容 input.select(); // 選中文本 document.execCommand("copy"); // 執行瀏覽器復制命令 alert("復制成功"); } </script>
親測,Firefox 48.0,Chrome 60.0,IE 8 都能用
推薦閱讀:
最好的JavaScript數據可視化庫都在這里了
js 中原型和原型鏈深入理解
JavaScript基礎知識系列:不再彷徨:完全弄懂JavaScript中的this
最好的JavaScript數據可視化庫都在這里了
JavaScript基礎知識系列:判斷類型(上)
ello,大家好,前段時間做舔狗日記小程序,需要一鍵復制,看了下文檔,小程序自帶復制功能,那么網頁js如何實現復制功能呢?
首先,我查了下,貌似可以實現對input和textarea等文本輸入框可以實現選中復制,針對div,p等標簽不可以,那么我們需要新建一個文本框標簽,不能給display:none; 我們需要懟他進行一個定位,讓透明看不見找不到,點擊復制,將需要復制的內容賦值給文本框,接著對文本框進行全選,在進行復制操作即可,代碼如下:
Markup
<p id="content">前端共享博客-專注前端行業精選- sharedblog.cn</p>
<textarea id="text" style="position: fixed;top: 10000px;left: 10000px;opacity: 0;"></textarea>
<button id="CopyBtn">復制</button>
JavaScript
網頁開發中,實現復制功能是一項常見的需求。本文將介紹如何使用JavaScript實現網頁上的復制功能,為您揭秘這一實用技巧。
首先,在HTML文件中創建一個按鈕,并設置一個唯一的id,用于后續的處理。
<button id="copyButton">復制文本</button>
接著,在JavaScript中編寫復制函數,該函數將實現復制功能。
document.getElementById("copyButton").addEventListener("click", function() {
// 希望復制的文本內容
var text = "要復制的文本內容";
// 創建一個元素
var input = document.createElement("input");
input.setAttribute("value", text);
// 將元素追加到頁面中
document.body.appendChild(input);
// 選中元素中的文本內容
input.select();
// 執行復制操作
document.execCommand("copy");
// 移除元素
document.body.removeChild(input);
// 顯示復制成功提示
alert("復制成功!");
});
我們嘗試運行程度,然后點擊一下復制按鈕;
運行結果:
至此,我們已完成了JavaScript實現網頁復制功能的所有步驟。
在實際運用中,您可以根據需要對復制功能進行改進,例如添加復制成功的提示、處理異常情況等。通過掌握這一技巧,您可以為用戶提供更好的交互體驗。
請在合適的時機將代碼部署到實際環境中進行測試。
確保在使用execCommand("copy")方法時,瀏覽器攔截器或插件不會阻止復制操作。
部分移動設備瀏覽器可能不支持execCommand方法,因此請根據實際情況進行兼容性處理。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。