首頁 >web前端 >前端問答 >javascript 禁止選中

javascript 禁止選中

WBOY
WBOY原創
2023-05-09 10:53:372020瀏覽

在 Web 開發中,有時我們需要禁止使用者選取網頁中的某些元素,以確保其不受非法複製等風險。此時,Javascript 的一個非常實用的特性-禁止選取就顯示出了它的優點。

禁止選中,指的是網頁中選取某個元素後,瀏覽器不會把這個元素的文字等內容複製到剪貼簿上。 Javascript 可以將這個功能實作得非常簡單。

方法如下所示:

// 防止选中文本
function disableSelection(element) {
    if (typeof element.onselectstart != 'undefined') {
        element.onselectstart = function() { return false; };
    } else if (typeof element.style.MozUserSelect != 'undefined') {
        element.style.MozUserSelect = 'none';
    } else {
        element.onmousedown = function() { return false; };
    }
}
// 调用示例
disableSelection(document.body);

此函數的作用,是將傳入的元素變數進行禁止選取的處理。如果該元素已經設定了 onselectstart 屬性,則將其設為 false,以防止預設選取事件的觸發。如果該屬性不存在,則繼續判斷是否具有 MozUserSelect 屬性。如果也不存在該屬性,則設定元素的 onmousedown 為 false。

如果要避免某些特定元素被選中,則可以為該元素新增 careful-selectable 類,並重寫該類別的 MozUserSelect 屬性。

程式碼範例如下所示:

.careful-selectable {
    -moz-user-select: text !important;
    -webkit-user-select: text !important;
    -ms-user-select: text !important;
    user-select: text !important;
}

在上述程式碼中,為特定類別的屬性設定為 !important,以保證無論元素如何設置,都不會被選取。透過設定 user-select 屬性,還可以實現文字可選中、但禁止滑鼠右鍵複製等其他功能。

不僅可以禁止選中,Javascript 還可以透過事件處理程序來禁止複製和剪下。

程式碼如下所示:

// 防止复制和剪切
function disableCopyAndCut(element) {
    element.addEventListener('copy', function(e) {
        e.preventDefault();
        console.log('禁止复制!');
    });
    element.addEventListener('cut', function(e) {
        e.preventDefault();
        console.log('禁止剪切!');
    });
}
// 调用示例
disableCopyAndCut(document.body);

在上述程式碼中,我們首先傳入了一個元素參數,然後分別為該元素的 copy 和 cut 事件新增了監聽器。在這兩種情況中,我們使用 preventDefault() 方法來防止預設行為的觸發,從而達到禁止複製和剪切的效果。

總之,Javascript 中禁止選取、複製和剪下等操作方法都十分簡單,只需要為特定元素設定一些屬性或事件處理程序即可實現。在開發 Web 頁面時,若涉及版權、隱私等敏感訊息,禁止選取等操作必不可少。

以上是javascript 禁止選中的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn