【问题标题】:Hide the banner on top for entire session once user clicks on close in magento一旦用户在 magento 中单击关闭,就隐藏整个会话顶部的横幅
【发布时间】:2018-06-27 17:58:59
【问题描述】:

当用户访问我们的网站时,我有一个横幅显示在网页顶部

<div class="hidden-xs col-lg-12 header-banner">
<div class="text-secondary bigger-text>Get discount at checkout use promocode XXX<button class="btn btn-primary bannerCloseBtn" id="closeButton"> close</button></div>
</div> 

当用户单击关闭按钮时,我试图隐藏横幅。在会话结束之前,这不应该再次出现。我如何在 magento 中完成此操作。隐藏横幅的 javascript 是

<script>
document.getElementById('closeButton').addEventListener('click', function(e) {
    e.preventDefault();
    this.parentNode.style.display = 'none';
}, false);
</script>

【问题讨论】:

  • @Zander,getElementById 是原生 javascript,你可能会感到困惑。
  • 那部分工作正常,我希望状态保持这种状态,直到会话到期。
  • @Yashchaturvedi 添加“style: display=jsFunction()”怎么样,您可以在其中检查是否有活动的会话,否则返回“无”?

标签: javascript php html magento-1.9


【解决方案1】:

您可以使用没有过期日期的 cookie。此 cookie 通常会在浏览器关闭时被删除。

这应该可行:

<script>
window.addEventListener('load', function(e){
    if(docuement.cookie.indexOf('banner_removed=1') !== -1)
        document.getElementById('closeButton').parentNode.style.display = 'none';
});
document.getElementById('closeButton').addEventListener('click', function(e) {
    e.preventDefault();
    this.parentNode.style.display = 'none';
    document.cookie = "banner_removed=1";
}, false);
</script>

【讨论】:

  • 非常感谢,解决方案可能就是这样!
  • @Yashchaturvedi 如果我的回答解决了您的问题,请将其标记为正确答案。
猜你喜欢
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 2022-10-18
  • 1970-01-01
  • 2022-11-05
  • 1970-01-01
  • 2017-05-05
相关资源
最近更新 更多