做了一个考生考试页面,需求如下:
- 防止考生选取题目复制百度
- 禁止打印考试题目
- .禁止保存页面
- 考生只有一次考试机会,页面刷新离开会被视为提交试卷
如果是开发者,应该都知道F12键打开开发者工具,在开发者工具选择题目选中一样可以复制。
想到这个因素,我用span标签包围一个题目中的每个字,span的类名最后的数字是随机数*1000生成的,例如:
以下哪一个对
在开发者工具中显示的是:
<span class="font1234">以</span>
<span class="font1235">下</span>
<span class="font4657">那</span>
<span class="font7654">一</span>
<span class="font7412">个</span>
<span class="font9632">对</span>
这样可以防止别人过于快捷的复制,用循环加就可以了。
网页禁止复制
<body oncopy="alert('对不起,本网页禁止复制!');return false;">
网页禁止选取
<body onselectstart="return false">
网页禁止右键弹出菜单
<body oncontextmenu="return false>
网页打印是空白
<style>
@media print{
body{display:none}
}
</style>
页面刷新或关闭会提示是否离开
<body oncontextmenu="return false">
这个函数如果点了取消就不会触发onunload事件
离开页面触发的函数
<body onunload="submit_close()">
禁用ctrl键和F5键
$(document).keydown(function(){
if(event.ctrlKey){//判断CTRL键
event.preventDefault();
}else if(event.keyCode==116){//判断F5键
event.preventDefault();
}
});
这些只是加大了搜题的难度,保证不了其他途径搜题