繁体   English   中英

用于在表单提交上设置 cookies 的 JS 适用于 Firefox 但不适用于 Edge/Chrome

[英]JS for setting cookies on Form Submit works in Firefox but not Edge/Chrome

我有一个引导模式,当页面加载要求用户设置他们的位置并将这个值保存到 cookie 时会弹出。

这在 Firefox 中一切正常,但在 Edge 或 Chrome 中不起作用。 有人有想法么?

<script>
function setCookie(cookieName, cookieValue, nDays) {
    
    var today = new Date();
    var expire = new Date();

    if (!nDays) 
        nDays=1;
    expire.setTime(today.getTime() + 3600000*24*nDays);
    document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString();
    return false
}
</script>

<div class="modal_container">
     
        <!-- Modal -->
        <div class="modal fade" id="store_prompt" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
            <div class="modal-dialog modal-dialog-centered" role="document">
              <div class="modal-content">
                <div class="modal-header">
                  <h5 class="modal-title" id="exampleModalLongTitle">Location Number</h5>
                </div>
                <div class="modal-body">
                    <form onsubmit="javascript:return setCookie('location', this.querySelector('select').value, 365);">
                        <div class="form-group">
                            <label for="LocationSelect">Please select your location below.</label>
                            <select class="form-control" id="LocationSelect">
                              <option value='1' >1 - Location A</option>
                              <option value='2' >2 - Location B</option>
                            </select>
                        </div>
                        <button type="submit" class="btn btn-primary btn-lg btn-block" onclick="closemodal(); location.reload();">Save changes</button>
                    </form> 
                </div>
              </div>
            </div>
</div>

您是否通过文件协议(如file:///C:/...测试代码? 如果是这样,我可以重现您遇到的情况。

你的代码是对的。 但是使用file:///协议浏览时没有设置 cookies,具体取决于浏览器。 您需要在http/https服务器上运行您的页面,然后代码才能在所有浏览器上运行。

结果: 在此处输入图像描述

我认为这可能是因为这个问题中提到的问题。 请通过这些 go。 它可能会解决您的问题。 为什么设置 document.cookie 在 Chrome 中不起作用?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM