一個高亮選擇后自動復(fù)制然后鼠標(biāo)中鍵無格式粘貼的代碼

一個高亮選擇后自動復(fù)制然后鼠標(biāo)中鍵無格式粘貼的代碼

以下是一個基于JavaScript的代碼示例,實現(xiàn)了在選擇文本后自動復(fù)制,并通過鼠標(biāo)中鍵無格式粘貼的功能來去除格式:

document.addEventListener('mouseup', function(e) {

? var selectedText = window.getSelection().toString();

? if (selectedText !== '') {

? ? // 創(chuàng)建一個臨時的 textarea 元素

? ? var tempTextarea = document.createElement('textarea');

? ? tempTextarea.value = selectedText;

? ? document.body.appendChild(tempTextarea);

? ? // 選中文本并復(fù)制

? ? tempTextarea.select();

? ? document.execCommand('copy');

? ? // 從 body 中移除臨時元素

? ? document.body.removeChild(tempTextarea);

? }

});

document.addEventListener('mousedown', function(e) {

? // 如果按下的是中鍵

? if (e.button === 1) {

? ? // 獲取剪貼板中的純文本內(nèi)容

? ? var clipboardData = e.clipboardData || window.clipboardData;

? ? var pastedText = clipboardData.getData('text/plain');

? ? // 在當(dāng)前光標(biāo)位置插入純文本

? ? var selection = window.getSelection();

? ? var range = selection.getRangeAt(0);

? ? var textNode = document.createTextNode(pastedText);

? ? range.deleteContents();

? ? range.insertNode(textNode);

? ? // 設(shè)置新的光標(biāo)位置

? ? range.setStartAfter(textNode);

? ? range.setEndAfter(textNode);

? ? selection.removeAllRanges();

? ? selection.addRange(range);

? ? // 阻止默認(rèn)粘貼行為

? ? e.preventDefault();

? }

});

在這個代碼中,我們通過添加兩個事件監(jiān)聽器來實現(xiàn)功能:

mouseup 事件監(jiān)聽器:當(dāng)用戶在頁面中選擇文本并松開鼠標(biāo)時,我們將選中的文本復(fù)制到剪貼板中。

mousedown 事件監(jiān)聽器:當(dāng)用戶在頁面中按下鼠標(biāo)時,如果按下的是中鍵,則我們從剪貼板中獲取純文本內(nèi)容,并在當(dāng)前光標(biāo)位置插入該文本。

需要注意的是,由于瀏覽器的安全策略,我們無法直接訪問剪貼板中的內(nèi)容,而只能通過用戶的操作來觸發(fā)剪貼板事件并獲取內(nèi)容。因此,在上面的代碼中,我們使用了 e.clipboardData.getData

('text/plain') 來獲取剪貼板中的純文本內(nèi)容。同時,我們也需要在代碼中阻止默認(rèn)的粘貼行為,以避免將帶有格式的內(nèi)容粘貼到頁面中。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容