是否可以使用纯 CSS/HTML 而没有 JavaScript 来实现 GDPR Cookie 同意?不希望脚本阻止程序阻止它

Posted

技术标签:

【中文标题】是否可以使用纯 CSS/HTML 而没有 JavaScript 来实现 GDPR Cookie 同意?不希望脚本阻止程序阻止它【英文标题】:Is it possible to implement GDPR Cookie Consent with pure CSS/HTML and no JavaScript? Don't want script blockers blocking it 【发布时间】:2019-09-21 23:04:33 【问题描述】:

搜索似乎只找到使用 javascript 的解决方案。 我想展示一个 Cookie 同意消息,即使访问者使用脚本拦截器也可见,所以我想知道这是否可以使用 CSS 和 html 完成,而无需任何 JS?

可见的部分是一回事。然后是与之交互的问题:一些看起来像按钮的链接可能足以将访问者引导到隐私政策页面等。

但是,使用什么来注册同意,这意味着设置/更改 cookie?在 scriptblocker 主动阻止任何脚本时可以这样做吗? (仅使用 HTML..?)

因此,由点击触发的页面重新加载是可以接受的。

【问题讨论】:

您可以使用简单的纯 HTML 表单将您喜欢的任何数据发送到您的服务器……然后从服务器端设置您的同意 cookie。 【参考方案1】:

我很确定仅使用 HTML 和 CSS 来设置 Cookies/Sessions/etc 是不可能的。如果没有 JavaScript,您将不得不使用一些服务器端语言。正如04FS 在评论中所说,您可以将仅包含 HTML 的表单数据发送到服务器,并在那里执行您需要的操作。

一个快速但有点“脏”的解决方案可以很容易地用 php 实现,几乎任何托管服务提供商都支持它,并且可以毫不费力地嵌入到 HTML 中(毕竟,这就是它最初的目的)。

这里有一个非常简单的例子来说明你可以如何去做:

记得把你的whatever.html重命名为whatever.php,这样你才能真正使用PHP。

<!-- index.php -->
<html>
<body>

  <div id="dialog" style="<?php isset($_COOKIE['hideDialog']) ? echo 'display: none;' : echo 'display: block;'; ?>">
    <p>Confirm to hide this message</p>
    <form action="saveCookie.php" method="get">
        <input type="submit" value="Confirm">
    </form>
  </div>

</body>
</html>

以及您将使用表单调用的脚本文件:

<?php

// saveCookie.php

setcookie('hideDialog', 'true', strtotime('+ 30 days'), "/");

【讨论】:

【参考方案2】:

是的,虽然它没有与 JS 相同的功能,但您可以通过使用黄色电话号码通知执行与 here 相同的操作来完成警告/弹出消息。

查看包裹部分中的黄色电话号码框。

该网站是用纯 HTML/CSS/Vanilla JS 编写的,因此您可以检查页面以了解它是如何完成的。你感兴趣的小sn-p全是HTML/CSS。如果这就是你要找的东西,那就很简单了。但是它不能监控像 JS 这样的事件,所以它显然没有这个功能,但是,你可以把它放在它自己的 DIV 中并将它绝对定位,这样它就可以在你想要的任何地方显示页面已加载。

【讨论】:

感谢您抽出宝贵时间回答问题。请考虑在答案中包含此处的代码,而不是链接到您的网站并检查标记。

以上是关于是否可以使用纯 CSS/HTML 而没有 JavaScript 来实现 GDPR Cookie 同意?不希望脚本阻止程序阻止它的主要内容,如果未能解决你的问题,请参考以下文章

是否有可以在 C# 中使用的类似 jQuery 的 CSS/HTML 选择器?

纯js和纯css+html制作的手风琴的效果

Java程序员的日常——经验贴(纯干货)

影响:focus'd元素的父元素(首选纯CSS + HTML)[重复]

纯 JDBC / Java 中的 DAO 教程 [关闭]

远程分析 jar 文件?