在我的网站(基于cms)上,我检查了cookie的限额。这是一个Javascript包。在我的网站模板中,我有:
<div class="row alert alert-info text-center fixed-bottom" role="alert" id="cookies-eu-banner" style="display: none;">
<div class="col-12 ml-auto mr-auto">
<p>By continuing your visit to this site, you accept the use of cookies by Google Analytics to make visits statistics.</p>
</div>
<div class="col-12">
<div class="text-center">
<a class="btn btn-info pull-center btn-round" href="./read-more.html" id="cookies-eu-more">Meer info</a> {*value="button"*}
<button type="button" class="btn btn-succes btn-round pull-center" id="cookies-eu-accept">Accepteren</button>
<button type="button" class="btn btn-warning btn-round pull-center" id="cookies-eu-reject">Afwijzen</button>
</div>
</div>
</div>
按下“接受”按钮后,cookie脚本将执行下一个脚本:
new CookiesEuBanner(function(){
// Your code to launch when user accept cookies
console.log('Cookies accepted and loaded');
}, true);
如果访问者点击“接受”,则应加载其他代码(Google Tagmanager,Google Analytics(分析)和社交媒体按钮)。 Cookie名称='hasConsent'。我知道访问者单击按钮时无法检查是否接受了cookie。该网站使用Smarty,并且应该摘录以下片段。如果用户在Cookie有效期内返回,则执行该Cookie不会有任何问题,但是它将无法在同一会话中工作:
{if isset($smarty.cookies.hasConsent)}
{block name='javascript_footer'}
{include file="smarty_tag_manager"}
{include file="{"smarty_analytics"}
{/block}
{/if}
据我了解,要使其正常工作,应该使用Javascript或AJAX完成。我对这些语言不熟悉。也许有一种方法可以将聪明的人添加到上面的CookiesEuBanner-snippet中,但是对我来说这是空白。
我试图在按钮上添加onclick函数:
<button type="button" class="btn btn-succes btn-round pull-center" id="cookies-eu-accept" onclick="myFunction()">Accepteren</button>
将msarty分配给变量:
{capture assign='_main'}
{block name='javascript_footer'}
{include file="smarty_tag_manager"}
{include file="{"smarty_analytics"}
{/block}
{/capture}
和一个myFunction:
<script>
function myFunction() {
document.getElementById("demo").innerHTML = '{$_main}';
}
</script>
但是这行不通。有人愿意帮助进一步吗?