Cookie接受后聪明地执行

时间:2019-03-11 07:10:09

标签: javascript html twitter-bootstrap smarty3

在我的网站(基于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>

但是这行不通。有人愿意帮助进一步吗?

0 个答案:

没有答案