Thủ thuật

Code chặn chuột phải, Copy và F12 sử dụng CSS & JavaScript

Ngăn chặn việc sao chép nội dung trong bài viết là một giải pháp chống sao chép đơn giản nhưng đem lại hiệu suất đáng kể. Mặc dù không thể ngăn chặn hoàn toàn những đối tượng sao chép chuyên nghiệp, nhưng đối với những người sao chép thông thường nó mang lại hiệu quả lớn.

Code sau vào trước thẻ đóng </head> của mẫu HTML trang web:

<style>
    /* Ngăn chặn việc chọn nội dung trên trang */
    body {
        -webkit-touch-callout: none;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        -o-user-select: none;
        user-select: none;
    }
</style>

<script>
    // Ngăn chặn sự kiện chọn nội dung khi sử dụng chuột
    document.onselectstart = () => false;

    // Kiểm tra nếu trình duyệt hỗ trợ thanh cuộn (sidebar)
    if (window.sidebar) {
        // Ngăn chặn sự kiện mousedown (nhấn chuột) để ngăn chọn nội dung
        document.onmousedown = () => false;
        
        // Cho phép sự kiện onclick (click chuột) để giữ tính năng chọn nội dung
        document.onclick = () => true;
    }
</script>

Code JavaScript khoá thao tác click chuột phải trên trang web nhằm chống hành động copy, nhấn f12, dán đoạn code này vào trước thẻ đóng </head>:

<script>
    window.onload = function () {
        // Ngăn chặn hiển thị menu ngữ cảnh (chuột phải)
        document.addEventListener("contextmenu", function (e) {
            e.preventDefault();
        });

        // Ngăn chặn các phím tắt và sự kiện khác
        document.addEventListener("keydown", function (e) {
            // Ctrl + Shift + I, Ctrl + Shift + J, Ctrl + Shift + U
            if ((e.ctrlKey || e.metaKey) && e.shiftKey && (e.keyCode == 73 || e.keyCode == 74 || e.keyCode == 85)) {
                disabledEvent(e);
            }

            // Ctrl + S (hoặc Cmd + S trên macOS)
            if ((e.keyCode == 83) && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
                disabledEvent(e);
            }

            // F12
            if (e.keyCode == 123) {
                disabledEvent(e);
            }
        });

        // Hàm ngăn chặn sự kiện
        function disabledEvent(e) {
            e.preventDefault();
            e.stopPropagation();
            return false;
        }
    };
</script>

Bài viết liên quan

Chat