document.addEventListener("copy",function(e){
//取消默認事件,才能修改復制的值
e.preventDefault();
//復制的內容
var copyTxt=`${window.getSelection(0).toString()}
\n作者:科技小鍋蓋
\n鏈接:${window.location.href}
\n著作權歸*科技小鍋蓋*所有,任何形式的轉載都請聯系QQ:1540217035獲得授權并注明出處。`
if(e.clipboardData) {
e.clipboardData.setData('text/plain', copyTxt);
}
else if(window.clipboardData){
return window.clipboardData.setData("text", copyTxt);
}
});
是科技小鍋蓋正在使用的方法,很好用,兼容各種瀏覽器!
作者:科技小鍋蓋
鏈接:https://www.xiaoguogai.cn/detail/id/40.html
著作權歸*科技小鍋蓋*所有,任何形式的轉載都請注明出處。
務人士在討論工作
在前端開發的世界里,提供用戶友好的交互體驗始終是我們的追求。其中一個經常被忽視卻極其實用的功能就是讓用戶能夠輕松地復制網頁上的內容到他們的剪貼板。這種能力在各種場景下都能派上用場,比如讓用戶復制代碼片段、優惠券代碼、鏈接等等。本文將探討如何使用JavaScript實現這一功能,以及在不同瀏覽器和設備上的最佳實踐。
復制內容到剪貼板的傳統方法是使用document.execCommand('copy'),但這種方法已經被廢棄,因為存在安全性和跨瀏覽器兼容性的問題。現在推薦的方法是使用navigator.clipboardAPI,這是一個現代的、安全的API,用于讀取和寫入用戶的剪貼板數據。
async function copyToClipboard(text) {
try {
await navigator.clipboard.writeText(text);
console.log('Content copied to clipboard');
} catch (err) {
console.error('Failed to copy to clipboard:', err);
}
}
navigator.clipboardAPI的核心方法是writeText()和readText()。writeText()接受一個字符串參數并將它寫入剪貼板,而readText()則返回一個Promise,解析后為剪貼板上的文本。
盡管navigator.clipboardAPI提供了強大的功能,但它也有一些限制:
假設你正在構建一個代碼分享平臺,用戶可以在這里查看和復制代碼片段。你可以使用navigator.clipboard.writeText()來實現一個“復制”按鈕。
<button id="copy-button">Copy Code</button>
<pre id="code-snippet">console.log('Hello, World!');</pre>
<script>
document.getElementById('copy-button').addEventListener('click', async ()=> {
const codeSnippet=document.getElementById('code-snippet').textContent;
await navigator.clipboard.writeText(codeSnippet);
alert('Code copied to clipboard!');
});
</script>
在實際應用中,可能需要考慮一些額外的優化措施,比如增加用戶反饋、處理API不支持的情況以及提高性能。
async function copyToClipboard(text) {
if (navigator.clipboard && navigator.clipboard.writeText) {
await navigator.clipboard.writeText(text);
console.log('Content copied to clipboard');
} else {
// Fallback for browsers that don't support the Clipboard API
const textarea=document.createElement('textarea');
textarea.value=text;
document.body.appendChild(textarea);
textarea.select();
try {
document.execCommand('copy');
console.log('Content copied using execCommand');
} catch (err) {
console.error('Failed to copy to clipboard:', err);
}
document.body.removeChild(textarea);
}
}
問題: 在不支持navigator.clipboardAPI的舊瀏覽器中怎么辦?
解決方案: 使用document.execCommand('copy')作為回退方案,盡管它已被廢棄,但在某些情況下仍能提供基本功能。
復制內容到剪貼板的能力是前端開發中一個看似微小卻非常實用的功能。通過使用navigator.clipboardAPI,我們可以安全、高效地實現這一目標。隨著瀏覽器對現代API的支持不斷增強,我們可以期待更多類似的功能來提升用戶體驗。在未來,我們可能會看到更多原生的API來簡化開發者的工作,同時也為用戶提供更安全、更流暢的互聯網體驗。掌握這些API不僅能夠提升你的開發技能,還能讓你的網站或應用程序在競爭中脫穎而出。
資料的時候,偶(jing)爾(chang)會碰上這種狀況,在復制網頁水果的文字時,突然彈出一個提示窗口“該文字不可復制”……這時候就輪到小編上場啦!!!馬上教你們幾招,輕松跳過這一步,把文字給復制下來。
1、網頁源文件
直接到網頁的源文件中,就能把文字給復制出來,然后粘貼到Word中,找到「替換」功能,用通配符「<*>」把中間的這些代碼給刪掉。
要進入到網頁的源文件中很簡單,只有在網頁的空白處,按下鼠標右鍵,就能看到「查看源文件」的選項,點擊就能跳轉到源文件的頁面了。
2、Console法
直接按下鍵盤上的F12,也能完成網頁文字的復制,而且比上一個方面簡單得多。
按下F12之后,網頁右邊會彈出一個窗口,點擊選項卡中的「Console」標簽,在底下空白的地方輸入「$=0」然后按下Enter鍵,之后再到網頁上選中文字、右鍵復制試試?這會兒就不會再彈出提示窗口了。
3、手打代碼
要是按下F12之后沒有反應,那就用這個方法試試。它也可以在操作后,直接到網頁上復制文字。
切換輸入法到英文模式,然后手動輸入這串字符「javascript:void($={});」,弄好之后按下Enter鍵就好。這個代碼必須手打,不能偷懶用復制粘貼的方式,要不就沒有作用了。
4、文字識別
最后這個是終極大招,可以完美復制任何網頁上的文字。只要我們將這些頁面保存成圖片、或者是直接截圖下來,然后用帶有圖片文字識別的軟件,就能把文字提取出來了。
小編用的是「迅捷PDF轉換器」的特色功能,它里面有一個「圖片轉文字(OCR)」,選擇后上傳(多張)圖片,設置好輸出格式和識別效果,最后按下「開始轉換」就可以了。
上面這4招,基本可以搞定網頁文字復制不了的問題,推薦大家收藏一下,需要用到的時候直接打開看看就好。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。