js usa tela cheia para evitar trapaças

        Quando eu estava escrevendo o sistema de exame on-line, havia uma função anti-trapaça que exigia tela cheia.Verifiquei alguns métodos on-line e depois falarei sobre como uso a tela inteira na função anti-trapaça.

1. Tela cheia

function showFullScreen(){
    lastFullScreenFlag=true;//如果不需要实现防作弊功能,请注释此行
    if (!document.fullscreenElement &&!document.mozFullScreenElement 
    && !document.webkitFullscreenElement &&!document.msFullscreenElement) { 
        if (document.documentElement.requestFullscreen) {
            document.documentElement.requestFullscreen();
        } else if (document.documentElement.msRequestFullscreen) {
            document.documentElement.msRequestFullscreen();
        } else if (document.documentElement.mozRequestFullScreen) {
            document.documentElement.mozRequestFullScreen();
        } else if (document.documentElement.webkitRequestFullscreen) {
            document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
        }
    }
}

2. Saia da tela cheia

function closeFullScreen(){
    if (document.exitFullscreen) {
        document.exitFullscreen();
    } else if (document.msExitFullscreen) {
        document.msExitFullscreen();
    } else if (document.mozCancelFullScreen) {
        document.mozCancelFullScreen();
    } else if (document.webkitExitFullscreen) {
        document.webkitExitFullscreen();
    }
}

3. Função anti-trapaça

  Ideias de implementação:

1. Entre na interface, o documento está vinculado ao evento de clique do mouse (clique único)

2. O evento onclick chama showFullScreen () para entrar na tela inteira

3. Use a variável lastFullScreenFlag para marcar se a tela cheia antes do evento onresize ocorre, true significa tela cheia

Nota: Durante o teste, descobriu-se que pressionar a tecla F12 quando não estiver no estado de tela cheia acionará o evento onsize para chamar o código no if. Portanto, a tag da variável lastFullScreenFlag é usada para chamar se você sair da tela cheia.

4, as alterações da janela de monitoramento de eventos de ajuste de janela (janela) de ajuste de janela (redimensionar)

5. checkFull () para julgar se é tela cheia

6. Existem apenas três oportunidades para sair da tela cheia e você não poderá sair da tela cheia após o esgotamento de três oportunidades.

var exitFullscreenNum=3;
var lastFullScreenFlag=false;
document.οnclick=function(){
    showFullScreen();
}
window.onresize = function() {
    var currentFullScreenFlag=checkFull();
    if (lastFullScreenFlag&&!currentFullScreenFlag) {
        exitFullscreenNum--;
        if(exitFullscreenNum>=0){
            alert("你还有"+(exitFullscreenNum)+"次退出全屏的机会!");
            lastFullScreenFlag=false;
        }
        else{
            alert("你已经不能退出全屏!");
            showFullScreen();
        }
    }
}
//判断是否全屏
function checkFull() {
    var isFull = false;
    if (document.fullscreenEnabled || document.msFullscreenEnabled ) {
        isFull = window.fullScreen || document.webkitIsFullScreen;
        if (isFull === undefined) {
            isFull = false;
        }
    }
    return isFull;
}  

O código acima implementa apenas uma função anti-trapaça simples. Para uma função mais completa, você precisa usar o banco de dados para registrar o número de vezes que pode sair da tela cheia. Não escreverei o código aqui.

Publicado 34 artigos originais · recebido 1 · visualizações 1946

Acho que você gosta

Origin blog.csdn.net/qq_38974638/article/details/104751139
Recomendado
Clasificación