{"id":20243,"date":"2021-09-01T13:48:00","date_gmt":"2021-09-01T13:48:00","guid":{"rendered":"https:\/\/kiencang.net\/2013\/07\/13\/code-chong-copy-va-click-chuot-phai-song-kiem-hop-bich-css-va-javascript\/"},"modified":"2022-09-26T08:49:20","modified_gmt":"2022-09-26T01:49:20","slug":"code-chong-copy","status":"publish","type":"post","link":"https:\/\/kiencang.net\/code-chong-copy\/","title":{"rendered":"Code ch\u1ed1ng copy, click chu\u1ed9t ph\u1ea3i v\u00e0 ctrl + u, song ki\u1ebfm h\u1ee3p b\u00edch CSS v\u00e0 JavaScript"},"content":{"rendered":"\n

Ng\u0103n thao t\u00e1c qu\u00e9t b\u00e0i vi\u1ebft l\u00e0 c\u00e1ch ch\u1ed1ng copy \u0111\u01a1n gi\u1ea3n nh\u01b0ng kh\u00e1 hi\u1ec7u qu\u1ea3. Tuy n\u00f3 kh\u00f4ng ch\u1ed1ng l\u1ea1i \u0111\u01b0\u1ee3c c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng sao ch\u00e9p c\u00f3 chuy\u00ean m\u00f4n v\u1ec1 c\u00f4ng ngh\u1ec7 th\u00f4ng tin, nh\u01b0ng v\u1edbi c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng copy th\u00f4ng th\u01b0\u1eddng th\u00ec r\u1ea5t h\u1eefu hi\u1ec7u.<\/p>\n\n\n\n

Trong b\u00e0i vi\u1ebft n\u00e0y Ki\u1ebfn c\u00e0ng s\u1ebd “song ki\u1ebfm h\u1ee3p b\u00edch” c\u1ea3 2 bi\u1ec7n ph\u00e1p l\u00e0 s\u1eed d\u1ee5ng CSS k\u1ebft h\u1ee3p v\u1edbi JavaScript. B\u1ea1n ch\u1ec9 c\u1ea7n \u0111\u01b0a \u0111o\u1ea1n code sau v\u00e0o tr\u01b0\u1edbc th\u1ebb \u0111\u00f3ng <\/head><\/code> c\u1ee7a m\u1eabu HTML trang web c\u1ee7a b\u1ea1n l\u00e0 th\u00e0nh c\u00f4ng:<\/p>\n\n\n\n

<style>\n     body{\n          -webkit-touch-callout: none;\n          -webkit-user-select: none;\n          -moz-user-select: none;\n          -ms-user-select: none;\n          -o-user-select: none;\n           user-select: none;\n         }\n<\/style>\n        \n<script>\n     function killCopy(e){\n           return false;\n     }\n\n     function reEnable(){\n           return true;\n     }\n\n     document.onselectstart=new Function (\"return false\");\n\n     if (window.sidebar){\n           document.onmousedown=killCopy;\n           document.onclick=reEnable;\n     }\n<\/script><\/code><\/pre>\n\n\n\n

N\u1ebfu b\u1ea1n mu\u1ed1n ch\u1ed1ng th\u00eam c\u1ea3 thao t\u00e1c chu\u1ed9t ph\u1ea3i (h\u1ea1n ch\u1ebf t\u00ecnh tr\u1ea1ng sao ch\u00e9p \u1ea3nh v\u00e0 v\u0103n b\u1ea3n), th\u00ec \u0111\u00e2y l\u00e0 \u0111o\u1ea1n code… V\u1ecb tr\u00ed th\u00ec v\u1eabn th\u1ebf, b\u1ea1n c\u1ee9 \u0111\u1ec3 n\u00f3 tr\u01b0\u1edbc th\u1ebb \u0111\u00f3ng <\/head><\/code>:<\/p>\n\n\n\n

<script type=\"text\/JavaScript\">\nvar message=\"NoRightClicking\"; function defeatIE() {if (document.all) {(message);return false;}} function defeatNS(e) {if (document.layers||(document.getElementById&&!document.all)) { if (e.which==2||e.which==3) {(message);return false;}}} if (document.layers) {document.captureEvents(Event.MOUSEDOWN);document.onmousedown=defeatNS;} else{document.onmouseup=defeatNS;document.oncontextmenu=defeatIE;} document.oncontextmenu=new Function(\"return false\") \n<\/script><\/code><\/pre>\n\n\n\n

Ph\u1ea7n d\u01b0\u1edbi \u0111\u00e2y t\u00f4i s\u1ebd gi\u1ea3i th\u00edch \u00fd ngh\u0129a nh\u1eefng d\u00f2ng code trong b\u00e0i, n\u1ebfu b\u1ea1n kh\u00f4ng ph\u1ea3i l\u00e0 d\u00e2n c\u00f4ng ngh\u1ec7 th\u00f4ng tin th\u00ec kh\u00f4ng c\u1ea7n \u0111\u1ecdc cho \u0111\u1ee1 nh\u1ee9c \u0111\u1ea7u, \u0111\u01b0a c\u00e1c \u0111o\u1ea1n code tr\u00ean v\u00e0o tr\u01b0\u1edbc th\u1ebb <\/head><\/code> l\u00e0 b\u1ea1n ch\u1ed1ng h\u00e0nh vi copy \u0111\u01b0\u1ee3c r\u1ed3i\u2026<\/p>\n\n\n\n

\u0110o\u1ea1n CSS:<\/p>\n\n\n\n

<style>\nbody{\n   -webkit-touch-callout: none;\n   -webkit-user-select: none; \n   -moz-user-select: none;    \n   -ms-user-select: none;     \n   -o-user-select: none;\n    user-select: none;\n}\n<\/style><\/code><\/pre>\n\n\n\n

\u1ede tr\u00ean l\u00e0 \u0111o\u1ea1n CSS3 ch\u1ed1ng copy, -webkit<\/code>, -moz<\/code>, -ms<\/code>, -o<\/code> l\u00e0 \u0111\u1ec3 t\u01b0\u01a1ng th\u00edch v\u1edbi c\u00e1c tr\u00ecnh duy\u1ec7t kh\u00e1c nhau, v\u00ec l\u00e0 CSS3 n\u00ean n\u1ebfu tr\u00ecnh duy\u1ec7t n\u00e0o ch\u01b0a h\u1ed7 tr\u1ee3 \u0111\u1ea7y \u0111\u1ee7 th\u00ec n\u00f3 kh\u00f4ng ho\u1ea1t \u0111\u1ed9ng, ngh\u0129a l\u00e0 \u0111\u1ed1i t\u01b0\u1ee3ng v\u1eabn copy \u0111\u01b0\u1ee3c! Do v\u1eady ta m\u1edbi c\u1ea7n th\u00eam JavaScript \u2013 c\u00e1i n\u00e0y th\u00ec ho\u1ea1t \u0111\u1ed9ng t\u1ed1t tr\u00ean h\u1ea7u h\u1ebft tr\u00ecnh duy\u1ec7t. <\/p>\n\n\n\n

Tuy nhi\u00ean JavaScript l\u1ea1i c\u00f3 \u0111i\u1ec3m y\u1ebfu l\u00e0 \u0111\u1ed1i t\u01b0\u1ee3ng c\u00f3 th\u1ec3 ch\u1ee7 \u0111\u1ed9ng t\u1eaft JavaScript c\u1ee7a tr\u00ecnh duy\u1ec7t \u0111\u1ec3 copy\u2026 V\u00e0 \u0111\u00f3 l\u00e0 l\u00fd do ta n\u00ean k\u1ebft h\u1ee3p c\u1ea3 hai, v\u00ec CSS th\u00ec \u0111\u1ed1i t\u01b0\u1ee3ng l\u1ea1i kh\u00f4ng th\u1ec3 t\u1ef1 t\u1eaft. Ph\u1ed1i h\u1ee3p c\u1ea3 2 l\u00e0m cho ch\u00fang b\u00f9 l\u1ea5p c\u00e1c \u0111i\u1ec3m y\u1ebfu c\u1ee7a nhau.<\/p>\n\n\n\n

PS: \u0110o\u1ea1n code JavaScript c\u00f3 tham kh\u1ea3o t\u1eeb trang n\u00e0y<\/a>.<\/p>\n\n\n\n


\n\n\n\n

Ch\u1ed1ng th\u00eam thao t\u00e1c ctrl + u<\/h2>\n\n\n\n

\u1ede ph\u1ea7n b\u00ecnh lu\u1eadn c\u00f3 b\u1ea1n n\u00f3i r\u1eb1ng c\u00f2n thao t\u00e1c ctrl + u<\/code> \u0111\u1ec3 xem m\u00e3 ngu\u1ed3n hi\u1ec7n v\u1eabn kh\u00f4ng ch\u1ed1ng \u0111\u01b0\u1ee3c, 5 n\u0103m sau t\u00f4i \u0111\u00e3 c\u00f3 c\u00e2u tr\u1ea3 l\u1eddi :))<\/p>\n\n\n\n

N\u00f3 \u0111\u00e2y b\u1ea1n:<\/p>\n\n\n\n

<script src=\"http:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.10.2\/jquery.min.js\"><\/script>\n<script>\ndocument.onkeydown = function(e) {\n        if (e.ctrlKey && \n            (e.keyCode === 67 || \n             e.keyCode === 86 || \n             e.keyCode === 85 || \n             e.keyCode === 117)) {\n            return false;\n        } else {\n            return true;\n        }\n};\n$(document).keypress(\"u\",function(e) {\n  if(e.ctrlKey)\n  {\nreturn false;\n}\nelse\n{\nreturn true;\n}\n});\n<\/script><\/code><\/pre>\n\n\n\n

\u0110\u00e2y l\u00e0 m\u00e3 c\u1ee7a anh b\u1ea1n n\u00e0y<\/a>.<\/p>\n\n\n\n

P\/S: \u0111\u00e3 bi\u1ebft \u0111\u1ebfn thao t\u00e1c ctrl + u<\/code> th\u00ec kh\u1ea3 n\u0103ng cao l\u00e0 h\u1ecdc c\u00f4ng ngh\u1ec7 th\u00f4ng tin r\u1ed3i. M\u00e0 \u0111\u00e3 bi\u1ebft th\u00ec t\u00f4i n\u00f3i thi\u1ec7t c\u0169ng kh\u00f4ng ch\u1ed1ng \u0111\u01b0\u1ee3c h\u1eb3n. Nh\u01b0ng m\u00e0 th\u00f4i, \u0111\u1ee1 \u0111\u01b0\u1ee3c \u0111\u00e2u th\u00ec \u0111\u1ee1 v\u1eady.<\/p>\n\n\n\n

Demo t\u1ed5ng h\u1ee3p k\u1ebft qu\u1ea3 b\u1ea1n c\u00f3 th\u1ec3 xem \u1edf link n\u00e0y nh\u00e9<\/strong>: https:\/\/static.kiencang.net\/2020\/js\/chong-copy.html<\/a><\/p>\n\n\n\n


\n\n\n\n

\u01afu v\u00e0 nh\u01b0\u1ee3c \u0111i\u1ec3m<\/h2>\n\n\n\n

Ch\u1ed1ng copy \u0111\u1ed3ng ngh\u0129a v\u1edbi vi\u1ec7c b\u1ea1n l\u00e0m gi\u1ea3m ti\u1ec7n l\u1ee3i c\u0169ng nh\u01b0 ch\u1eafc ch\u1eafn g\u00e2y ra nhi\u1ec1u t\u00ecnh hu\u1ed1ng kh\u00f3 ch\u1ecbu cho ng\u01b0\u1eddi d\u00f9ng, ngay c\u1ea3 trong tr\u01b0\u1eddng h\u1ee3p h\u1ecd kh\u00f4ng c\u00f3 \u00fd \u0111\u1ecbnh sao ch\u00e9p to\u00e0n b\u1ed9 v\u0103n b\u1ea3n c\u1ee7a b\u1ea1n.<\/p>\n\n\n\n

V\u00ed d\u1ee5 h\u1ecd ch\u1ec9 mu\u1ed1n copy m\u1ed9t c\u1ee5m t\u1eeb n\u00e0o \u0111\u00f3 tr\u00ean trang \u0111\u1ec3 th\u1ef1c hi\u1ec7n vi\u1ec7c t\u00ecm ki\u1ebfm. Hay khi h\u1ecd mu\u1ed1n chu\u1ed9t ph\u1ea3i \u0111\u1ec3 m\u1edf link trong tab m\u1edbi.<\/p>\n\n\n\n

N\u1ebfu l\u00fd do ch\u1ee7 y\u1ebfu c\u1ee7a vi\u1ec7c ch\u1ed1ng copy l\u00e0 tr\u00e1nh trang kh\u00e1c copy n\u1ed9i dung c\u1ee7a b\u1ea1n c\u00f3 th\u1ee9 h\u1ea1ng t\u1ed1t h\u01a1n th\u00ec d\u01b0\u1edbi \u0111\u00e2y l\u00e0 c\u00e1ch \u0111\u1ec3 b\u1ea1n kh\u1eafc ph\u1ee5c \u0111i\u1ec1u \u0111\u00f3 m\u00e0 kh\u00f4ng ph\u1ea3i d\u00f9ng m\u00e3 tr\u00ean:<\/p>\n\n\n\n