javascript - 如何为网页制作一次性弹出窗口?
问题描述
我有一个网站,我希望每位访问者(或至少每个会话)都能帮助该网站生存。我的意思是集成一个基于 CoinHive 的脚本,因此当运行一次时,它将挖掘(在用户同意和知情的情况下),并且弹出窗口将在此之后自动关闭并弹出一个窗口。
对于基于 CoinHive 的脚本,我有以下内容:
<!DOCTYPE HTML>
<html>
<head>
<title> Sample </title>
</head>
<body>
<form action="?" method="post">
<script src="https://authedmine.com/lib/captcha.min.js" async></script>
<div class="coinhive-captcha" data-hashes="1024" data-key="my_key_here">
<em>Loading Captcha...<br>
If it doesn't load, please disable Adblock!</em>
</div>
<input type="submit" value="Submit" />
</form>
</body>
</html>
对于显示的弹出窗口,我有:
function myFunction() {
alert("Thank you for helping. You may now proceed.");
}
最后,我在弹出窗口上的文字将是:
尊敬的访客。为了保持此站点运行,您需要完成一次性验证码。这将要求您只需单击它并等待,但是它会增加 CPU 和电源使用率,因此建议使用 PC。这应该是你唯一一次看到这个。谢谢您,给您带来的不便深表歉意。
有人可以帮助将其变成需要此功能的弹出窗口,用户将无法滚动或退出,这是一次性的吗?
解决方案
您可以使用localStorage:
<script type="text/javascript">
var alerted = localStorage.getItem('alerted') || '';
if (alerted != 'yes') {
alert("Thank you for helping. You may now proceed.");
localStorage.setItem('alerted','yes');
}
</script>
更完整的答案:这里
我希望能帮助你。
推荐阅读
- c# - 如何在 Xamarin 表单(如 android)中拥有类似于 colors.xml 的文件
- java - @RecentlyNonNull 注释是什么?
- laravel - Laravel Nova:生成没有字段的模型值
- javascript - AngulaJS ng绑定不起作用-无法设置未定义的属性
- javascript - 如何将聊天与 quickblox sdk 集成到 react native 中?
- linux - Kubernetes 中的问题
- javascript - 在 textarea 的 keyup 事件上将文本添加到无序列表
- angular6 - 'Amcharts.isReady' 在 angular6 中不起作用?
- c - 删除由 device_create()、class_create() 和 alloc_chrdev_region() 创建的文件
- swift - 如何在 swift iOS 中存储在 FileManager 中的音频文件上添加音频修剪?