popup che si apre SOLO alla prima pagina visitata, qualunque essa sia

frk

Utente Attivo
22 Ott 2009
51
1
8
Devo inserire un avviso popup che si apra su tutte le pagine del mio sito prima del caricamento del resto della pagina. Ho visto che la cosa si può fare semplicemente, ad esempio con i seguenti javascript

Codice:
<script type="text/javascript">
alert('Questo sito utilizza cookies di terze parti, cliccando su OK acconsenti all'utilizzo');
</script>

oppure

Codice:
<script type="text/javascript">
<!--
var answer = confirm ("Questo sito utilizza cookies di terze parti, cliccando su OK acconsenti all'utilizzo")
if (!answer)
window.location="http://www.yahoo.com/"
// -->
</script>

Il problema è che, dovendo inserire il codice in TUTTE le pagine, il popup continuerebbe ad apparire ad ogni nuova pagina del sito che il visitatore carica, cosa improponibile.

Come faccio a inserire una opzione che NON carichi più lo script dopo la prima pagina visitata?

Grazie in anticipo a chiunque avrà la gentilezza di rispondere.
 

MikiProgrammer

Utente Attivo
9 Mag 2015
63
2
8
Devi inserire questo codice PHP dopo il body:
PHP:
<?php
if (!isset($_COOKIE['visualizzato'])){
setcookie("visualizzato", "si");
echo "<script type=text/javascript>
alert('Questo sito utilizza cookies di terze parti, cliccando su OK acconsenti all'utilizzo');
</script>";
}
Dovrebbe funzionare...
 

frk

Utente Attivo
22 Ott 2009
51
1
8
Ti ringrazio molto per la risposta, in realtà ne stiamo discutendo già qui: http://forum.mrwebmaster.it/html-cs...e-miei-siti-alle-nuove-norme-sui-cookies.html

...non volevo fare cross-posting ma visto che si parlava di javascript avevo ritenuto opportuno aprire questo topic nella apposita sezione, poi sono arrivati molti interventi di là e allora abbiam proseguito...

Ad ogni modo, mi sto orientando più verso una finestra di tipo "var = confirm" perchè offre il tasto annulla che posso utilizzare come link alla cookie policy (informativa estesa), ma il problema è che il cookie viene scritto sia se si clicca su OK, sia se si clicca su Annulla

Questo è il codice che sto provando a usare:

Codice:
<script type="text/javascript">
<!--
if (!document.cookie.match(/(?:^|; *)alert_shown=1/)) {
var answer = confirm ("Questo sito utilizza cookies di terze parti, cliccando su OK acconsenti all'utilizzo. Cliccare su 'Annulla' per maggiori dettagli.")
document.cookie = "alert_shown=1;max-age=" + 60 * 60 * 24 * 365;
if (!answer)
window.location="cookie_policy.html";
}
// -->
</script>
 

MikiProgrammer

Utente Attivo
9 Mag 2015
63
2
8
Prova così:

Codice:
<script type="text/javascript">
<!--
if (!document.cookie.match(/(?:^|; *)alert_shown=1/)) {
var answer = confirm ("Questo sito utilizza cookies di terze parti, cliccando su OK acconsenti all'utilizzo. Cliccare su 'Annulla' per maggiori dettagli.");
if (!answer)
window.location="cookie_policy.html";
}else{
document.cookie = "alert_shown=1;max-age=" + 60 * 60 * 24 * 365;
}}
// -->
</script>
Se quello che ho capito è giusto, il codice dovrebbe andare bene...
 

frk

Utente Attivo
22 Ott 2009
51
1
8
Ti ringrazio molto per la gentilezza e per la rapida risposta, ma usando il codice da te modificato non si apre più nessuna finestra, nemmeno la prima volta (ovviamente ho provveduto a cancellare il cookie prima di provare).
 

Night Assassin

Utente Attivo
16 Mar 2013
200
0
0
Insomma... Puoi personalizzare link, testo, colori, modalità di apparizione

Inviato dal mio MotoE2(4G-LTE) utilizzando Tapatalk
 

frk

Utente Attivo
22 Ott 2009
51
1
8
Ringrazio entrambi per le risposte.

Lo script di Google non lo uso per una precisa scelta, non uso nemmeno script che tentano di caricare elementi dai domini di goole come googleapis.com et similia; oltretutto mi sembrerebbe un controsenso utilizzare un prodotto del "grande fratello" per salvaguardare la privacy degli utenti del web...

Il php non lo uso perchè i miei siti sono tutti statici in HTML puro.
 

Night Assassin

Utente Attivo
16 Mar 2013
200
0
0
Lo script di google non ha collegamenti col sito di google... Non invia dati né li riceve

Inviato dal mio MotoE2(4G-LTE) utilizzando Tapatalk
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
prova una cosa del genere, io ho messo l'invio a due pagine diverse per non stare a cancellare ogni volta il cookie
HTML:
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
<!--
function cooki_law(){
	if (!document.cookie.match(/(?:^|; *)alert_shown=1/)) {
		//confirm ("Questo sito utilizza cookies di terze parti, cliccando su OK acconsenti all'utilizzo. Cliccare su 'Annulla' per maggiori dettagli.");
		var answer = confirm ("Questo sito utilizza cookies di terze parti, cliccando su OK acconsenti all'utilizzo. Cliccare su 'Annulla' per maggiori dettagli.");
		if (!answer)
			//window.location="cookie_policy.html";
			window.location="000002.php";
		else
			window.location="000002C.php";
			//document.cookie = "alert_shown=1;max-age=" + 60 * 60 * 24 * 365;
	}
}
// -->
</script>
</head>
<body onLoad="cooki_law()">
<h1>resto pagina</h1>
</body>
</html>
prova
p.s.
quando crei il cookie aggiungi anhe il dominio e la path perche altrimenti si generano cookies per ogni pagina che vai
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
ieri ti ho detto del dominio, ma mi ero dimenticato di postarlo
Codice:
document.cookie = "alert_shown=1;max-age=" + 60 * 60 * 24 * 365 +"; domain=.tuo_sito.it;path=/";
 

frk

Utente Attivo
22 Ott 2009
51
1
8
ciao
prova una cosa del genere, io ho messo l'invio a due pagine diverse per non stare a cancellare ogni volta il cookie
HTML:
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
<!--
function cooki_law(){
	if (!document.cookie.match(/(?:^|; *)alert_shown=1/)) {
		//confirm ("Questo sito utilizza cookies di terze parti, cliccando su OK acconsenti all'utilizzo. Cliccare su 'Annulla' per maggiori dettagli.");
		var answer = confirm ("Questo sito utilizza cookies di terze parti, cliccando su OK acconsenti all'utilizzo. Cliccare su 'Annulla' per maggiori dettagli.");
		if (!answer)
			//window.location="cookie_policy.html";
			window.location="000002.php";
		else
			window.location="000002C.php";
			//document.cookie = "alert_shown=1;max-age=" + 60 * 60 * 24 * 365;
	}
}
// -->
</script>
</head>
<body onLoad="cooki_law()">
<h1>resto pagina</h1>
</body>
</html>
prova
p.s.
quando crei il cookie aggiungi anhe il dominio e la path perche altrimenti si generano cookies per ogni pagina che vai
Grazie ma purtroppo questo codice oltre alla finestra carica già tutta la pagina sottostante prima che l'utente clicchi su OK. Del resto il comando "onLoad" esegue una istruzione contemporaneamente al caricamento della pagina e non prima, non esiste un comando per caricare qualcosa prima della pagina, a quanto ne so (a parte le finestre "alert" e "confirm", ma senza integrarle in una funzione).
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
si carica ma secondo me inattiva e quindi non fa niente
per provare cancella tutti i cookie che hai e chiamala e poi vai a vedere, senza dare il consenso, quali cokie ti ha generato, se non ha generato cookie vuol dire che funzia
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
dimenticavo e dico una ca..ata: se non ti è di troppo lavoro perchè non trasformi le tua pagine statiche in dinamiche (basta che tu cambi l'estenzione da .html a .php) quindi le pagine possono usare del codice php, certo dovrai lavorare per fare diverse modifiche ma mettendo alla riga uno un codice del genere
PHP:
<?php
if(!isset($_COOKIE['alert_shown'] || $_COOKIE['alert_shown']!="1"){
	header("location:pagina.php");//pagina.php non genera cookie da sola o se il cookie è diverso da uno
	exit();
}
//tutta la parte sotto non si carica se non esiste il cookie di accettazione
?>
<!DOCTYPE HTML>
<html>
<head>
<!-- quello che ti serve -->
</head>
<body>
<!-- resto della pagina -->
</body>
</html>
poi nella pagina pagina.php metti la creazione e tutti gli avvisi per la cokie law con in caso di accettazione il riinvio alla home
mettendo quella parte di codice php in tutte le pagine queste si vedono e formano gli altri eventuali cookie solo se uno ha accettato
 

frk

Utente Attivo
22 Ott 2009
51
1
8
ciao
si carica ma secondo me inattiva e quindi non fa niente
per provare cancella tutti i cookie che hai e chiamala e poi vai a vedere, senza dare il consenso, quali cokie ti ha generato, se non ha generato cookie vuol dire che funzia
Mi spiace ma devo smentirti: ho provato a inserire un annuncio adsense nella pagina di prova con il tuo script e non solo viene mostrato sotto la finestra ma scrive il cookie profilante di doubleclick prima che si clicchi su qualunque scelta, e questo è quello che la legge italiana (unica in europa) non permette.

Ti ringrazio anche per il consiglio sul php ma preferisco mantenere i miei siti statici e comunque se decidessi di traformarli in dinamici ripartirei da zero, non vedo di buon occhio una trasformazione posticcia.

Comunque non vi preoccupate, ormai provvedo con la finestra che scrive il cookie in ogni caso ma che almeno blocca la pagina finchè l'utente non ha cliccato OK o non ha visionato l'informativa estesa, anche perchè Google mi aveva dato fino a domani per adeguarmi e non ho più tempo di studiare soluzioni migliori.

Grazie di cuore, mi siete stati tutti di grande aiuto!