【问题标题】:Age verification with just javascript and no cookies: how?仅使用 javascript 而没有 cookie 的年龄验证:如何?
【发布时间】:2023-03-21 05:10:02
【问题描述】:

我正在为一家销售啤酒的欧盟公司建立一个网站,并且需要一个年龄验证启动画面。这很容易,我已经有了一个。我在页眉中使用了一个轻量级的 cookie 插件(cookie.js 可以在优秀的 http://microjs.com 上找到)。这或多或少是我的设置:

JS(在<head> 元素中)

if (cookie.get("agechecked")) {
    document.documentElement.className += " agechecked";
}

CSS

.agechecker { display: block; width: 100%; height: 100%; ... } 
.agechecked .agechecker { display: none };

遗憾的是,对于少数访问者,年龄检查无法正常工作。有些人无法通过它,对于其他人来说,它会在每次页面加载后弹出,而对于某些人来说,cookie 只是不起作用,这意味着“记住我”复选框对他们来说已损坏。我想使用另一种方法来至少确保年龄检查不会阻止任何人完全查看该网站。

我只有 javascript 可供我使用,不想使用 cookie。因为我很确定会话的等价物是浏览器关闭后过期的 cookie - 所以这将我的选择限制为......是的,什么?

我正在考虑的替代方案:

  • jStorage - 但这依赖于 jQuery 或 Prototype 等框架,这意味着我必须在页面标题中加载 jQuery。那不行;
  • window.name 方法,结合 JSON 将数据存储在窗口 name 属性中,这对我的口味来说有点太 hacky,而且也不会延续到其他选项卡
  • 我可以检查推荐人(访问者是否已经在此域的另一个页面上?)这是 90% 的保证他/她通过了年龄检查

我在 stackoverflow 上找不到任何真正有用的信息,但我相信你们中的一些人已经建立了年龄验证。您是如何解决这些问题的?

(编辑:我知道,我应该构建一个实际发布到服务器的表单,我可以在其中以无数种不同的方式存储和检索信息,但是从我这里拿走我必须依赖 javascript。无能为力它)

【问题讨论】:

    标签: javascript cookies


    【解决方案1】:

    HTML5 webstorage (localStorage) 是一种客户端持久性机制。浏览器兼容性见http://caniuse.com/#feat=namevalue-storage

    【讨论】:

    • hm localstorage 可能很有用,但实际上太持久了。除非我能说服我的客户,否则年龄检查应该一生只为访客出现一次
    【解决方案2】:

    我阅读了您的问题,因为您需要一种在不使用 cookie 的情况下跨网页保持状态的方法。 这里有几个选择:

    【讨论】:

    • 谢谢,localstorage 可能没问题,但是(见上文),URL 和 GET 中的数据表明我可以访问服务器端解决方案,但我没有(是的,javascript 可以处理 GET,但这太 hacky适合我的口味)
    猜你喜欢
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多