如何防止用户使用浏览器隐藏元素设置?
在网页水印中,为了防止用户篡改,需要禁止浏览器提供的隐藏元素选项。下面介绍几种解决方案:
1. 禁止右键查看源码和 f12
//禁止 f12 键盘事件 document.addeventlistener('keydown', function(event){ return 123 != event.keycode || (event.returnvalue = false) }) //禁止右键、选择、复制 document.addeventlistener('contextmenu', function(event){ return event.returnvalue = false })
2. 通过页面宽度变化检测控制台
function resize(){ var threshold = 200; var widththreshold = window.outerwidth - window.innerwidth > threshold; var heightthreshold = window.outerheight - window.innerheight > threshold; if(widththreshold || heightthreshold){ console.log('控制台打开了') } } window.addeventlistener('resize', resize); resize()
3. 利用 debugger 的特性,无限递归
function check() { function doCheck(a) { (function() {}["constructor"]("debugger")); //debugger doCheck(++a); } try { doCheck(0) } catch(err) { console.log(err) } }
其他建议
ECharts图表无法完全填充容器:原因何在,如何解决?
Travis Scott 和 Denim Tears 连帽衫背后的炒作
如何使用正则表达式验证字符串是否以特定网址开头?
React函数组件和类组件计时器:闭包问题如何解决?
ESLint 和 Tree Shaking:如何协同提高 JavaScript 项目性能?
使用OpenCV.js进行投影变换后得到空白的透明图片可能有以下几个原因:变换矩阵错误:投影变换需要一个正确的变换矩阵。如果矩阵中的参数设置不正确,可能会导致图像变换到视图之外,生成空白图像。源图像问题:如果源图像本身有问题,比如是空白或透明的,那么变换后的图像也会是空白或透明。目标图像大小设置不当:在进行投影变换时,需要指定目标图像的大小。如果目标图像大小设置得太小,可能会导致变换后的图像内容超出目标图像范围,生成空白图像。插值方法不当:OpenCV.js在进行变换时使用了不恰当的插值方法,导致图像变换