关键词

javascript点击才出现验证码

下面是JavaScript点击才出现验证码的完整攻略:

1. 编写HTML页面

我们需要在HTML页面中添加一个点击事件和一个用于显示验证码的容器。可以使用以下代码:

<!DOCTYPE html>
<html>
<head>
    <title>JavaScript点击才出现验证码示例</title>
    <meta charset="UTF-8">
    <style>
        #captcha {
            display: none;
        }
    </style>
</head>
<body>
    <h1>JavaScript点击才出现验证码示例</h1>
    <button id="showCaptcha">显示验证码</button>
    <div id="captcha"></div>
    <script src="main.js"></script>
</body>
</html>

这里我们添加了一个按钮,并通过CSS将验证码容器的display属性设置为none,这样在页面加载时就不会显示。

2. 添加点击事件

接下来,需要使用JavaScript为按钮添加一个点击事件,当用户点击按钮时,才会显示验证码。可以使用以下代码:

const showCaptchaButton = document.getElementById("showCaptcha");
const captcha = document.getElementById("captcha");

function showCaptcha() {
  captcha.style.display = "block";
}

showCaptchaButton.addEventListener("click", showCaptcha);

这里我们使用了document.getElementById()方法获取了按钮和验证码容器的DOM元素,然后定义了一个名为showCaptcha的函数,将验证码容器的display属性设置为block,从而显示验证码。最后使用addEventListener()方法为按钮添加点击事件,点击时执行showCaptcha()函数。

3. 添加验证码功能

最后一步是为验证码容器添加验证码功能。可以使用第三方库如hCaptchaGoogle reCAPTCHA。这里以hCaptcha为例,示例代码如下:

<div id="captcha" class="h-captcha" data-sitekey="YOUR_SITE_KEY"></div>

这里我们为验证码容器添加了h-captcha类,并设置了data-sitekey属性(YOUR_SITE_KEY替换为你自己的网站密钥),以便hCaptcha识别你的网站和验证码功能。

同时,在HTML头部添加以下代码:

<script src="https://hcaptcha.com/1/api.js" async defer></script>

这里我们引入了hCaptcha的JavaScript SDK,以便正确加载和运行验证码功能。

示例

下面通过两个示例来说明如何使用JavaScript点击才出现验证码:

示例1

在用户点击一个按钮后才显示验证码,示例代码如下:

HTML代码:

<!DOCTYPE html>
<html>
<head>
    <title>示例1</title>
    <meta charset="UTF-8">
    <style>
        #captcha {
            display: none;
        }
    </style>
</head>
<body>
    <h1>示例1</h1>
    <button id="showCaptcha">显示验证码</button>
    <div id="captcha" class="h-captcha" data-sitekey="YOUR_SITE_KEY"></div>
    <script src="https://hcaptcha.com/1/api.js" async defer></script>
    <script src="main.js"></script>
</body>
</html>

JavaScript代码:

const showCaptchaButton = document.getElementById("showCaptcha");
const captcha = document.getElementById("captcha");

function showCaptcha() {
  captcha.style.display = "block";
}

showCaptchaButton.addEventListener("click", showCaptcha);

示例2

在用户滚动到页面底部后才显示验证码,示例代码如下:

HTML代码:

<!DOCTYPE html>
<html>
<head>
    <title>示例2</title>
    <meta charset="UTF-8">
    <style>
        #captcha {
            display: none;
        }
    </style>
</head>
<body>
    <h1>示例2</h1>
    <div id="content">
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec eros ex, aliquam non finibus eu, consectetur vel justo. Sed efficitur velit vel ex interdum ornare. Vivamus non est auctor, bibendum enim condimentum, consectetur sapien. Ut sit amet leo felis. Vivamus efficitur turpis nec dui lobortis, sit amet malesuada dui mattis. Duis faucibus urna id tempor elementum. Proin et eros id odio facilisis maximus quis ultricies orci. Integer sollicitudin, odio non vehicula eleifend, libero sapien vestibulum ligula, id posuere lectus mi et diam. Ut imperdiet, purus ut vestibulum molestie, sapien elit pharetra lorem, ac facilisis nibh leo eu quam.</p>
        <p>Integer tincidunt mi id eros sodales dictum. Quisque orci augue, porta non fermentum fermentum, blandit vitae arcu. Morbi eu felis vel arcu sagittis pretium a id urna. Vestibulum pharetra, mauris vitae dictum rutrum, dolor ipsum bibendum mi, ut bibendum nisi tellus vel tortor. Praesent malesuada dapibus turpis a finibus. Ut at dui ut felis tincidunt ullamcorper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>
        <p>Nulla suscipit ipsum id efficitur vestibulum. Integer at justo in dolor faucibus ultricies. Suspendisse ac eros volutpat, accumsan dui vitae, dictum sapien. Ut posuere, libero eu finibus porttitor, odio orci suscipit lorem, quis posuere nunc odio nec neque. Aliquam vel tortor in enim consectetur feugiat. Nulla rhoncus, nisi euismod semper iaculis, nunc nulla malesuada turpis, blandit dignissim nunc tortor eget lacus. Vivamus bibendum sapien in imperdiet pulvinar. Nulla volutpat mi quam, facilisis congue est eleifend ut. Morbi vel eros dolor.</p>
        <p>Curabitur eget elit lacinia, gravida tellus at, lobortis dui. Donec luctus metus id felis dapibus, sit amet faucibus magna tempus. Pellentesque consectetur, nunc vel molestie vestibulum, sapien ex viverra erat, sit amet facilisis nibh mauris a arcu. Pellentesque nec imperdiet est. Mauris rhoncus luctus dictum. Nam tristique odio mollis hendrerit sodales. Vestibulum euismod libero eget nunc vulputate, eu pellentesque dolor aliquet.</p>
        <p>Proin feugiat, nulla quis placerat consequat, sapien dolor ultricies mauris, viverra bibendum urna turpis eget risus. Donec vel ipsum tempor, porta massa et, rhoncus massa. Ut id odio pharetra, viverra urna vitae, tincidunt massa. Sed rhoncus augue non leo porttitor, vel faucibus erat volutpat. Vestibulum vulputate elementum velit. Fusce at massa non dolor efficitur dignissim vitae nec dui. Sed vel arcu id arcu egestas ultrices ut ac mi. Morbi congue est non mauris interdum auctor eget et mauris. Praesent fringilla leo et dolor pellentesque consequat.</p>
        <p>Maecenas at elit nisi. Nulla ullamcorper ipsum turpis, sed dignissim justo auctor ut. Praesent dapibus, turpis vel efficitur finibus, lorem augue dignissim risus, quis volutpat eros lectus nec metus. In scelerisque sapien sed libero varius feugiat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Ut id imperdiet eros. Suspendisse at varius felis. Sed nec nulla arcu. Aenean elementum tellus eu ligula vestibulum, et scelerisque nibh ornare. In vitae justo convallis, vestibulum ipsum id, bibendum velit. Pellentesque congue massa a velit luctus aliquam. Nunc aliquam dapibus tellus ut efficitur. Nulla euismod, sapien id imperdiet posuere, neque nulla congue turpis, eu elementum orci odio eget elit.</p>
        <p>Quisque et commodo dolor. Sed augue tortor, viverra eu massa et, vulputate hendrerit libero. Fusce facilisis laoreet massa, eget suscipit velit sollicitudin eu. Pellentesque vestibulum malesuada mi, nec fringilla neque aliquet in. Etiam lacinia nunc in quam viverra mattis. Vivamus a nunc eget augue porta ullamcorper. Donec in massa leo. Suspendisse elementum elit id nulla pulvinar, ac volutpat odio molestie. Nulla nec gravida nunc.</p>
        <p>Donec placerat libero eu tristique efficitur. Nullam congue tellus id nulla euismod, et pharetra risus fermentum. Suspendisse potenti. Vivamus ut arcu ac magna placerat bibendum vitae non libero. Nulla at velit orci. Ut commodo ante vitae odio porta fermentum. Aliquam sed pretium orci. Morbi suscipit ipsum eu erat pharetra venenatis.</p>
    </div>
    <div id="captcha" class="h-captcha" data-sitekey="YOUR_SITE_KEY"></div>
    <script src="https://hcaptcha.com/1/api.js" async defer></script>
    <script src="main.js"></script>
</body>
</html>

JavaScript代码:

const captcha = document.getElementById("captcha");

function showCaptcha() {
  captcha.style.display = "block";
}

function onScroll() {
  if (window.innerHeight + window.scrollY >= document.body.offsetHeight - 100) {
    captcha.classList.add("h-captcha");
    captcha.classList.add("h-captcha-invisible");
  }
}

window.addEventListener("scroll", onScroll);

在这个示例中,我们首先添加了一个名为content的容器,其中添加了大量虚假文本,以便用户需要向下滚动才能看到页面底部的验证码。然后,在JavaScript中添加了名为onScroll的函数,它会在用户滚动到离页面底部不到100像素处时启用captcha容器,并添加h-captcha类和h-captcha-invisible类,以便提供一个看不见的验证码。如果用户能够解决验证码,可以使用另一个处理程序来提交表单或执行其他操作。

本文链接:http://task.lmcjl.com/news/11933.html

展开阅读全文