Ciao, allora giusto per ghiribizzo ho provato a pensare, in modo tecnico, a qualche idea riguardo la tua esigenza.
Soluzione 1
Teoricamente basterebbe un confirm() all'inizio dell'head in modo da mantenere in "standby" il caricamento del resto della pagina, dal punto in cui viene lanciata la finestrella modale fino a quando non si preme "OK" o "Annulla". A quel punto sarà possibile operare di conseguenza in base alla risposta dell'utente.
Di contro c'è il fatto che la finestra non si presta a troppe personalizzazioni e non si tratta di un banner; da perfetto ignorante non so cosa prevedono i dettagli di legge e se possa essere una soluzione accettabile.
L'ideale sarebbe se esistesse una funzione standby() che interrompa momentaneamente il caricamento della pagina, proprio come fa la finestrella modale, ma senza finestrella modale. Non credo esista.
codice:
Codice:
var confermacookie = confirm('Questo sito fa uso di cookie.\nPremendo "OK" si da conferma di voler proseguire con la navigazione di questa pagina.\nPremendo "Anulla" si verrà buttati fuori.');
if (!confermacookie) location.href = 'perchènonhaiaccettato.html';
Soluzione 2
Esiste il metodo window.stop() che, esattamente, interrompe il caricamento della pagina, proprio come quando si preme la [X] visibile a fianco alla barra degli indirizzi, quando si sta caricando la pagina. Subito dopo la visualizzazione del banner potrebbe essere lanciato lo stop, fino a quando l'utente non da una risposta.
Da tener conto che IE non supporta questo metodo, per cui bisogna usare un ulteriore accorgimento.
Una roba del genere:
codice:
Codice:
if (document.documentMode) document.execCommand("Stop"); // per IE
else window.stop(); // per il resto del mondo
Peccato che non esista una funzione continue() che riprenda il caricamento da dove era stato interrotto. In tal caso, se l'utente dà conferma, si dovrebbe salvare un qualche cookie o una variabile localStorage per poi ricaricare interamente la pagina e saltare quindi il controllo col banner, già confermato.
Soluzione 3
Qui mi sono sforzato parecchio, in giro ho visto qualcosa del genere ma non relativamente al discorso dei cookie.
L'idea è quella di commentare le parti (all'interno della pagina HTML) che si vuole mantenere inattive finché non si dà la conferma.
Sostanzialmente si tratta di un semplice commento HTML, per cui non viene eseguito al caricamento della pagina, ma sarà poi "decommentato" attraverso JavaScript. In teoria si potrebbe commentare l'intero contenuto del body o dell'head o di tutto il tag html ma per mantenere comunque valida la pagina (nonostante i commenti) e perché la pagina stessa sia indicizzabile, sarà possibile commentare opportunamente giusto le parti che gestiscono i cookie. Ora non ho idea di quale sia esattamente la tua situazione, ma ti posto un esempio per capire se può essere un'idea valida.
Ho usato jQuery per pigrizia ma, volendo, sono sicuro che si può fare anche con Vanilla JavaScript senza troppi problemi.
codice:
Codice:
<!DOCTYPE HTML>
<html>
<head>
<title>Esempio</title>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(function(){
$("#confermo").click(function(){
$(this).remove();
$('head,body').each(function(){
$(this).html($(this).html().replace(/<!--RICHIESTA_CONFERMA([\s\S]*?)-->/g,"$1"));
})
})
})
</script>
<!--RICHIESTA_CONFERMA
<style type="text/css">
/* Questo CSS è attivo solo dopo che hai confermato */
body{background:tan}
</style>
-->
</head>
<body>
<input id="confermo" type="button" title="NON ACCETTARE I BISCOTTI DAGLI SCONOSCIUTI!!!" value="Accetti i biscotti?">
<p>Qui puoi mettere della roba che vuoi rendere già visibile.</p>
<!-- Questo è un normale commento che non sarà decommentato
mentre quello sotto sarà decommentato dopo la conferma
-->
<!--RICHIESTA_CONFERMA
<p><b>Questa roba è attiva solo dopo che hai confermato</b></p>
-->
</body>
</html>
Non ho fatto troppi test.
Ribadisco che sono giusto delle idee che finiscono qui!
.