Chèn link “Read More” khi Copy nội dung từ Website bằng jQuery

20/08/2014

Thỉnh thoảng, khi các bạn cần lấy nội dung từ một trang web nào đó, khi copy và dán nội dung đó vào notepad , thì nội dung đó thường được đính kèm theo một link như  Read more at: http://www.thuthuatweb.net/javacript/chen-link-read-more-khi-copy-noi-dung-tu-website-bang-jquery.html . Các chủ website thường làm việc này để bảo vệ nội dung trên trang web của họ cũng như thông báo bản quyền bài viết đến cho người muốn lấy nội dung. Hôm nay mình sẽ chia sẻ cho các bạn đoạn code bằng  jQuery. Với đoạn code này, các bạn có thể làm chức năng tương tự cho chính website hay blog của mình.

chen-link-read-more-khi-copy-noi-dung-tu-website-bang-jquery

Chúng ta sẽ sử dụng thuộc tính document.body.oncopy, nó sẽ trả về sự kiện onCopy trên phần tử hiện tại.

Cú pháp như sau :

element.oncopy = functionRef; 

Chúng ta sẽ chèn thêm một javascript function khác gọi là window.getSelection(); trả về một đối tượng đại diện cho dãy kí tự được lựa chọn bởi người dùng.

jQuery Code

$(document).ready(function () {
    document.body.oncopy = function () {
        var body_element = document.getElementsByTagName('body')[0];
        var selection;
        selection = window.getSelection();
        var pagelink = "<br />Read more at: <a href='" + document.location.href + "'>" + document.location.href + "</a><br />";
        var copytext = selection + pagelink;
        var newdiv = document.createElement('div');
        body_element.appendChild(newdiv);
        newdiv.innerHTML = copytext;
        selection.selectAllChildren(newdiv);
        window.setTimeout(function () {
            body_element.removeChild(newdiv);
        }, 0);
    };
});

Khi chèn đoạn code này vào website rồi, thì từ giờ trở đi, bất kì ai copy nội dung từ trang web của bạn, thì cùng với nội dung mà họ muốn lấy, đoạn link trỏ về trang web của các bạn cũng được chèn vô thêm.Mình hy vọng các bạn sẽ thấy thích với đoạn code mà mình chia sẻ với các bạn ngày hôm nay.

Chúc các bạn thành công !

Chuyên Mục:

Bài viết được đăng bởi webmaster

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !
  • nam

    cho em hỏi tại sao ko dùng body_element.removeChild(newdiv); trực tiếp luôn mà phải bỏ vô Timeout để làm gì ạ.