是否可以使用纯 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 选择器?