最近做的商用后台项目涉及到前端加密技术,为了保证前端页面展示的数据不被窃取,所以在 js 上做了一些处理,这些处理并不能完全杜绝有心之人窃取数据,只是加大他们操作的难度而已。
相关文章推荐:JS 禁用右键、Ctrl+u、Ctrl+s、F12 的实现代码
1. 禁止浏览器右键事件
使用浏览器右键可以将网页保存下来,或者审查网页源代码,这是我们想避免的(当然,仍然可以通过浏览器右上角的工具栏打开开发者工具,这里可以判断下鼠标的光标位置,如果光标移动到导航栏及页面 body 之外的地方,我们可以选择把页面展示的元素清空,这样在控制台看见的源代码也没有展示出来的数据了)。
js 实现:
document.oncontextmenu = function(){
return false;
}
jquery 实现:
$(function(){
$(document).contextmenu(function() {
return false
})
});
2. 禁止 F12 事件,键盘的选择粘贴复制事件
js 实现:
window.onload = function() {
document.onkeydown = function(event) {
var ev = event || window.event || arguments.callee.caller.arguments[0];
//123 代表 F12 键
if (event.keyCode = 123) {
return false;
}
}
}
jquery 实现:
function forbidKeyboard() {
$(document).keydown(function(e) {
/*9:Tab 键, 17:Control 键, 18:Alt 键, 123:F12 键, 83:S 键*/
var keyboardCode = [9, 17, 18, 123];
for (i in keyboardCode) {
if (keyboardCode[i] == e.keyCode) {
return false;
}
}
if ((e.keyCode == 83) && (e.ctrlKey || e.metaKey)) {
return false;
}
});
/*禁止文本选择功能*/
$(document).bind("selectstart",
function() {
return false;
});
}
$(function() {
forbidKeyboard();
});