2016-12-02 53 views
0

我設置了一個EU cookie橫幅:在href上單擊「ok」時刷新頁面。防止頁面刷新Cookie橫幅點擊

我嘗試使用event.preventDefault();和:a href="#" onclick="return false;"但該鏈接沒有做他的工作(允許cookies)並且不會消失。

有人可以幫助我阻止頁面刷新鏈接點擊?

我基本的html:

if (isset($_GET['accept-cookies'])){ 
setcookie('accept-cookies', time() +31556925); 
header('Location: ./'); 
} 

?><!DOCTYPE html> 

<head> 
... 
</head> 

<body <?php body_class(); ?>> 

<?php 
if (!isset($_COOKIE['accept-cookies'])){ 
?> 
     <div class="cookie-banner"> 
      <div class="cookie-container"> 
       we use cookies <a href ="?accept-cookies" id="ok" class="button" > ok, continue </a> 
      </div> 
     </div> 

和我的jQuery:

$(document).ready(function() { 
    $('.cookie-banner').slideDown(800); 
}); 

$(document).click(function (event) {    
    $('#ok')[0].click(); 
}); 

回答

0

您可以設置cookie的[ '接受餅乾']用JavaScript

像這樣的事情

$('.cookie-banner #ok').on('click', function(e) { 
    e.preventDefault(); 
    var accept_cookies = getCookie('accept-cookies'); 
    if(accept_cookies === undefined) { 
     setCookie('accept-cookies', true, {expires:31556}) 
    } 
}) 


//get cookie 
function getCookie(name) { 
    var matches = document.cookie.match(new RegExp(
    "(?:^|;)" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" 
)); 
    return matches ? decodeURIComponent(matches[1]) : undefined; 
} 

//set cookie 
function setCookie(name, value, options) { 
    options = options || {}; 

    var expires = options.expires; 

    if (typeof expires == "number" && expires) { 
    var d = new Date(); 
    d.setTime(d.getTime() + expires * 1000); 
    expires = options.expires = d; 
    } 
    if (expires && expires.toUTCString) { 
    options.expires = expires.toUTCString(); 
    } 

    value = encodeURIComponent(value); 

    var updatedCookie = name + "=" + value; 

    for (var propName in options) { 
    updatedCookie += "; " + propName; 
    var propValue = options[propName]; 
    if (propValue !== true) { 
     updatedCookie += "=" + propValue; 
    } 
    } 

    document.cookie = updatedCookie; 
} 
+0

謝謝!我試過你的代碼,但它不適合我。它仍然會重新加載自己的頁面。我試圖用jquery ajax來處理這個,但迄今爲止沒有成功! –