Witam,
Mam pytanie, dlaczego ten skrypt nie zapamiętuje ciasteczek? Co zamknę kartę, to jest info. Oto skrypt:
<script>
$().ready(function() {
var sName = "cookiesok";
$("#close-cookie-info").click(function(){
var oExpire = new Date();
oExpire.setTime((new Date()).getTime() + 3600000*24*365);
document.cookie = sName + "=1;expires=" + oExpire;
$("#cookie-info").hide();
});
var sStr = '; '+ document.cookie +';';
var nIndex = sStr.indexOf('; '+ escape(sName) +'=');
if (nIndex === -1) {
$("#cookie-info").show();
}
});
</script>
A tu odwołanie do przycisku:
<div id="cookie-info">
<p><strong>UWAGA!</strong> Info o ciasteczkach
<a href="javascript:void(0);" id="close-cookie-info"
>Akceptuję</a>
</div>
Fizyda
(Fizyda)
13 Czerwiec 2018 20:41
#2
Czy przypadkiem #cookie-info nie jest domyślnie widoczne? Powinno być ukryte i w tym może być problem.
1 polubienie
ehh zapomniałem jeszcze dodać kodu CSS, proszę zobacz i napisz, gdzie jest błąd.
#cookie-info {
background: #66001a ;
position: fixed;
width:100%;
bottom: 0;
margin: 0;
padding: 10px;
display: none;
z-index: 99;
}
#cookie-info a{
color: #fff;
}
#cookie-info p{
font-size: 16px;
color: #fff;
}
#close-cookie-info{
text-decoration:none;
background-color:#00b300;
padding: 4px;
border-radius: 4px;
}
#close-cookie-info:hover{
text-decoration:none;
background-color:#36d900;
padding: 4px;
border-radius: 4px;
}
Może ten kod z 2014 czy nawet starszy to bubel? http://forum.php.pl/lofiversion/index.php/pl/t228004.html
Niby znalazłem skąd pochodzi, ale demo nie chce działać - treść mieszana jak widzę, dopuścimy jQuery po HTTP i komunikat po zamknięciu nie wraca przez “rok”.
https://www.altcontroldelete.pl/artykuly/jak-szybko-prosto-i-bezplatnie-dodac-do-strony-monit-o-ciasteczkach/
Demo pod twoje modyfikacje, pamiętaj o jQuery 1.9.1 lub nowszym jak ruszy z nim gotowiec:
https://jsfiddle.net/Lu2jrfxd/
Powrotem po kliknięciu run
, bym się przejmował jakby realnie na stronie nie zamykało w innych częściach np. domena.pl/sklep/
, domena.pl/blog/
czy gdzieś indziej, gdzie ci taka budowa linka nie przeszkadza a szablon ten sam.
Zgadza się, ten skrypt pochodzi z tej strony i też o tym zapomniałem napisać, lecz aż tak dobrze nie znam JS, aby pisać takie skrypty. Próbowałem na generatorach, ale jednak wolę kod, gdzie mogę coś zmienić. Ja z tym kodem mam najnowszą wersję JQuery i nie chce działać. Tylko mogę zamykać za każdym otwarciem strony.
1 polubienie
Mnie na normalnej stronie działa, nie wiem jedynie czemu wczoraj to ruszało na jsfiddle - czyżby jakaś różnica w Firefox 61?
Działa też jak zrobiłem domena.pl/cookies/cookies.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex, nofollow">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>
<style type="text/css">
#cookie-info {
background: #66001a;
position: fixed;
width: 100%;
bottom: 0;
margin: 0;
padding: 10px;
display: none;
z-index: 99;
}
#cookie-info a {
color: #fff;
}
#cookie-info p {
font-size: 16px;
color: #fff;
}
#close-cookie-info {
text-decoration: none;
background-color: #00b300;
padding: 4px;
border-radius: 4px;
}
#close-cookie-info:hover {
text-decoration: none;
background-color: #36d900;
padding: 4px;
border-radius: 4px;
}
</style>
<script type="text/javascript">
$(window).load(function(){
$().ready(function() {
var sName = "cookiesok";
$("#close-cookie-info").click(function() {
var oExpire = new Date();
oExpire.setTime((new Date()).getTime() + 3600000 * 24 * 365);
document.cookie = sName + "=1;expires=" + oExpire;
$("#cookie-info").hide();
});
var sStr = '; ' + document.cookie + ';';
var nIndex = sStr.indexOf('; ' + escape(sName) + '=');
if (nIndex === -1) {
$("#cookie-info").show();
}
});
});
</script>
<section id="cookie-info">
<p><strong>UWAGA!</strong> Niniejsza strona wykorzystuje pliki cookies. Informacje uzyskane za pomocą cookies wykorzystywane są głównie w celach statystycznych. Pozostając na stronie godzisz się na ich zapisywanie w Twojej przeglądarce.
<a href="javascript:void(0);" id="close-cookie-info">Zamknij ostrzeżenie</a></p>
</section>
</html>
Tylko ja nie sprawdzam na hostingu a na kompie (nie localhost) i nie działa. Zanim wrzucę na stronę, to zmienię zmienne i porobię osobne linie kodu.
1 polubienie
krystian3w
(krystian3w)
14 Czerwiec 2018 08:44
#10
Może statycznie (bez localhost / serwera) się nie dać i “html playgorundy” się do tego może nie specjalnie nadają .
Na pewno nie działa jako statyczny plik odpalany z jakiegoś folderu (z dysku lokalnego / zmapowanego), prędzej w localhost (uruchomiłem, wyłączyłem bloker reklam i mam komunikat, klikam nie wraca przez “rok”).
Fizyda
(Fizyda)
14 Czerwiec 2018 08:53
#11
Ciastka są na domenę - choćby localhost, więc skoro uruchamiasz z pliku, a nie z serwera (domeny) to cookie nie zadziała.
1 polubienie
Faktycznie i zgadzam się. Ehh taka podstawa a tu dałem ciała. Po prostu o tym zapomniałem.
1 polubienie