Discuz模板|Discuz插件|Discuz教程|Discuz素材免费下载

 找回密码
 立即注册

QQ登录

只需一步,快速开始

广告
温馨提示:本站所有DZ相关模板、插件、教程(包括DZ应用中心已下架插件、模板)所有用户可全部免费下载,无任何收费模式(不包括VIP版块非DZ资源,VIP版块需购买会员组方可下载),如本站没有您需要的插件或模板,请自行前往淘宝互站网送吗网等第三方站点搜索相关插件或模板进行低价格购买下载本站非常不建议用户浪费金钱前往DZ应用中心购买。

【实测】JavaScript 实现禁止打开控制台(右键/工具栏/F12/Shift+Ctrl+I)

[复制链接]
tuyuanma 发表于 2019-6-17 09:15:13 | 显示全部楼层 |阅读模式
温馨提醒:禁止内容附带广告图片、二维码图片,否则将在不通知情况下永久禁言账号!
欢迎加入兔源码站长交流群,您的加入是我们前行的动力!

DZ站长建站交流群:493651246

[ 温馨提示:点击上方群文字,可快速加入QQ群 ]


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    6 y b t y2 ]
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 3 o; Z* l I1 H5 }; V  j% h
  3. <head>
    : A9 Q' O3 z% t0 {' v
  4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 0 J2 M' R# W, J. p" Y
  5.     <title></title>
    ; a/ _/ B5 Z' B. `4 d2 _
  6.     <style type="text/css">
    : {! Z$ M/ I3 T; R$ G5 j$ Y
  7.     /*禁止选中文字*/ % T3 n6 C: {* j- s0 U& g* ^
  8.     body{ " X0 ^/ I) u$ [ h2 t
  9.         -moz-user-select: none; /*火狐*/ " D3 x* ?5 Z) c/ X5 N: q
  10.         -webkit-user-select: none; /*webkit浏览器*/
    3 P; c# I! `8 R1 ~- n4 q
  11.         -ms-user-select: none; /*IE10*/ 6 s$ ?1 B" q( i1 w5 G- J
  12.         -khtml-user-select: none; /*早期浏览器*/
    8 R* m, \0 R, \4 x, z W
  13.         user-select: none;
    / a/ v2 U- }$ K
  14.     }
    / j5 u R" b: E
  15.     </style>  
    8 W* O" ~# r9 x! z
  16. </head>
    4 P9 o, d d; Y2 k6 M1 _. f
  17.   & r! u3 t$ {$ A$ l! B5 X4 A2 m# }
  18. <body>
    , x0 F) r8 \4 Z( ^. f( [
  19.     <p>Test</p> / W$ c4 n4 ^: g# i1 G
  20. <script type='text/javascript'>
    2 M. _$ r m( Q8 A2 h% x4 Z
  21.     //禁用右键(防止右键查看源代码)
    1 u* Q! c( k- n) v. q9 ]" q! D9 z
  22.     window.oncontextmenu=function(){return false;}
    0 k& p: q5 v$ T- _  i; k. @
  23.     //禁止任何键盘敲击事件(防止F12和shift ctrl i调起开发者工具) . H# }' e, _; I$ r  h; e( g
  24.     window.onkeydown = window.onkeyup = window.onkeypress = function () {
    " B2 w" l7 h9 g) Q
  25.         window.event.returnValue = false;
    % s6 z, v; S1 F1 R
  26.         return false; 2 {( N, b; P( C6 m4 r; I$ l
  27.     } ( C I. z' U' r5 M; q2 v6 e6 g
  28.     //如果用户在工具栏调起开发者工具,那么判断浏览器的可视高度和可视宽度是否有改变,如有改变则关闭本页面
      D2 v/ k) M# A, {  p2 @; ~4 A
  29.     var h = window.innerHeight,w=window.innerWidth;   I# {  W* o, L% H! K0 ]& L  D6 w
  30.     window.onresize = function () {
    # z' y: N& d x/ o/ `* l' y9 n( W
  31.         if (h!= window.innerHeight||w!=window.innerWidth){
    : C6 G1 i. z( q' y
  32.             window.close();
    - c0 Z* ?7 ^; I9 k4 Z  K% p
  33.             window.location = "about:blank"; / K f% g  x) Z. o& Q4 y9 q( t
  34.         } 2 c  k1 w* a# [# Z! U* h
  35.     }
    2 _( c2 M# s1 `  B. t8 Q& k# k
  36.     /*好吧,你的开发者工具是单独的窗口显示,不会改变原来网页的高度和宽度, 但是你只要修改页面元素我就重新加载一次数据,让你无法修改页面元素(不支持IE9以下浏览器)*/ 8 `/ M4 f; Y; R* ?
  37.     if(window.addEventListener){ 2 [& h" N- f' W" ?
  38.         window.addEventListener("DOMCharacterDataModified", function(){window.location.reload();}, true); - Q- Z! x# ~3 W( w
  39.         window.addEventListener("DOMAttributeNameChanged", function(){window.location.reload();}, true);
    0 N/ ^) S. s( @" v  U8 [
  40.         window.addEventListener("DOMCharacterDataModified", function(){window.location.reload();}, true);
    ! J5 ?& r& s; C' O* H( d' V/ V4 Z
  41.         window.addEventListener("DOMElementNameChanged", function(){window.location.reload();}, true); ) v; q7 J. z: i
  42.         window.addEventListener("DOMNodeInserted", function(){window.location.reload();}, true); & w4 f2 z: i* ]0 L0 J i
  43.         window.addEventListener("DOMNodeInsertedIntoDocument", function(){window.location.reload();}, true);
    : H" o U8 a- d) e& V/ R: N  {$ m3 g. ]
  44.         window.addEventListener("DOMNodeRemoved", function(){window.location.reload();}, true);
    : U7 V9 Q6 c( h: @2 m( e
  45.         window.addEventListener("DOMNodeRemovedFromDocument", function(){window.location.reload();}, true); ! r3 I. E! l" T C. v
  46.         window.addEventListener("DOMSubtreeModified", function(){window.location.reload();}, true);
    0 d4 a% ]* |( ~# ?3 i1 [( i/ {
  47.     } 5 ?% D7 T. k5 B1 f5 @
  48. </script> ! Y- A" c1 y* b f
  49. </body>
    6 v9 E8 G/ Z" o
  50. </html>
复制代码
代码本身应该说没有什么问题,但是后面“通过监听页面元素变化来重新加载页面”的代码对于一些页面上有太多效果的网站获取会导致你的网站崩溃,比如我博客上因为设置了标题滚动(具体请看这篇文章:JavaScript 实现网站标题自定义、滚动、闪烁),这段代码就会监听到我博客上标题元素被修改,导致网站一遍遍的加载,最后的结果可想而知。。。所以说为了避免网站崩溃而又不影响网站美观我们只能退而求其次,只将以下代码复制到你主题的 footer.php 文件中去,或者任何你希望用户禁止查看控制台的页面中即可:
  1. [code]<script type='text/javascript'> ( @8 i O0 @) W$ P, d
  2.         //禁用右键(防止右键查看源代码)
    / s7 L! b" Y- v# Z  z6 D
  3.         window.oncontextmenu=function(){return false;}  z/ ]. ^5 Q( A7 K
  4.         //禁止任何键盘敲击事件(防止F12和shift ctrl i调起开发者工具)* G2 n& i: D# g2 H
  5.         window.onkeydown = window.onkeyup = window.onkeypress = function () {
    5 W# O) f3 B1 @- j0 g, Y
  6.         window.event.returnValue = false;$ }- W# J2 Q3 `6 X1 I4 d
  7.                 return false;
    / y7 k/ h z' H2 s' n/ Y
  8.         }
    7 [7 z8 u) w' n$ ?! D8 V' T& {
  9.                 //如果用户在工具栏调起开发者工具,那么判断浏览器的可视高度和可视宽度是否有改变,如有改变则关闭本页面
    . v. w' t1 y* B/ S1 M
  10.                 var h = window.innerHeight,w=window.innerWidth;
    / d* z$ y( n. f! G5 U
  11.                 window.onresize = function () {
    2 X a3 a2 n& O
  12.                 if (h!= window.innerHeight||w!=window.innerWidth){
    0 r' j$ D* e5 k$ k# J1 |; _
  13.                         window.close();
    . E: R) p) } H# g
  14.                         window.location = "about:blank";
    3 Z$ w$ i: e- e, B( ~
  15.                 }% V7 l. h* g6 E: J7 h: k
  16.         } ) A1 H7 [6 ?" A
  17. </script>  
复制代码
由于代码是 JavaScript 的,也就是说当用户浏览器禁止 JavaScript 的话代码会失效,不过对于提高一些恶意搞事情的难度还是有一定作用的。

版权声明
1、转摘或引用本站内容资源须注明原网址,并标明本站网址(兔源码www.tuyuanma.com);
2、对于转摘或引用本站内容资源而引起的民事纠纷、行政处罚或其他损失,本站不承担责任;
3、对于不遵守本声明或其他违法、恶意使用本站内容者,本站保留其追究法律责任的权利。




自动排版 | 高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广告

兔源码网 (公网安备36112102000036号 赣ICP备17001544号)

兔源码 QQ交流群:493651246  GMT+8, 2020-7-3 07:04
←站长统计工具 查看密码:tuyuanma

兔源码DZ模板下载 站长邮箱:tuyuanma@qq.com 站长QQ:3197813386 网站地图

© 2001-2013 本站内容皆来自互联网及用户分享,如需删除请提供软著或商标证书。

     
快速回复 返回顶部 返回列表