如何仅使用 HTML、CSS 和 JavaScript 来密码保护页面?

1. HTML 基本结构

在使用 HTML、CSS 和 JavaScript 来密码保护页面之前,我们需要先构建页面的基本结构。

一个基本的 HTML 结构由若干个元素组成,其中必须包含 Head 和 Body 两个主要元素,Head 元素用于定义文档的头部信息,例如文档的标题、样式表等等,而 Body 元素用于定义文档的主要内容。

我们在 Body 元素中定义密码输入框,用户名输入框,以及提交按钮,具体的代码如下所示:

<!DOCTYPE html>

<html>

<head>

<title>Password protected page</title>

</head>

<body>

<form>

<label for="username">Username:</label>

<input type="text" id="username" name="username">

<label for="password">Password:</label>

<input type="password" id="password" name="password">

<input type="submit" value="Submit">

</form>

</body>

</html>

2. CSS 样式设置

在 HTML 结构中定义好了密码输入框、用户名输入框和提交按钮之后,我们需要对这些元素进行样式设置,让其看起来更加美观、直观。这里我们主要使用 CSS 来实现。

我们可以设置输入框和提交按钮的字体样式、背景色、边框样式等等,来达到我们想要的效果。具体的 CSS 样式代码如下所示:

form {

margin: 50px auto;

padding: 20px;

border: 1px solid #ccc;

width: 300px;

background-color: #f2f2f2;

border-radius: 5px;

}

label {

display: inline-block;

margin-bottom: 5px;

}

input[type="text"],

input[type="password"] {

width: 100%;

padding: 10px;

border-radius: 5px;

border: 1px solid #ccc;

margin-bottom: 20px;

font-size: 16px;

}

input[type="submit"] {

background-color: #4CAF50;

color: #fff;

border: none;

padding: 10px 20px;

text-align: center;

text-decoration: none;

display: inline-block;

font-size: 16px;

border-radius: 5px;

cursor: pointer;

}

设置好样式之后,我们页面的效果图如下所示:

3. JavaScript 处理逻辑

在 HTML 和 CSS 部分都已经完成之后,我们现在需要通过 JavaScript 来对输入的用户名和密码进行验证,以确定用户是否有权限访问该页面。

3.1 获取输入的用户名和密码

首先,我们需要获取到用户输入的用户名和密码,然后进行进一步的处理判断。

const form = document.querySelector('form');

const username = document.querySelector('#username');

const password = document.querySelector('#password');

form.addEventListener('submit', e => {

e.preventDefault();

const usernameValue = username.value.trim();

const passwordValue = password.value.trim();

});

在上面的代码中,我们首先通过 document.querySelector 方法获取到页面中的 form 元素以及输入的用户名和密码信息。然后给 form 元素绑定了 submit 事件,以便在用户点击提交按钮时能够进行验证处理。

3.2 验证用户名和密码是否正确

在获取到用户输入的用户名和密码信息之后,我们需要通过 JavaScript 对其进行验证处理。

在这里,我们可以定义一个对象数组来存储已经注册的用户信息,以便在用户登录时可以进行验证。

const users = [

{

username: 'admin',

password: '123456'

},

{

username: 'test',

password: '654321'

}

];

然后,我们可以通过 for...of 循环来遍历这个对象数组,比对用户输入的用户名和密码是否与已注册的用户信息相符合。

const form = document.querySelector('form');

const username = document.querySelector('#username');

const password = document.querySelector('#password');

const users = [

{

username: 'admin',

password: '123456'

},

{

username: 'test',

password: '654321'

}

];

form.addEventListener('submit', e => {

e.preventDefault();

const usernameValue = username.value.trim();

const passwordValue = password.value.trim();

for (const user of users) {

if (user.username === usernameValue && user.password === passwordValue) {

alert('Login success!');

return;

}

}

alert('Invalid username or password!');

});

在上面的代码中,我们首先定义了一个对象数组 users 来存储已经注册的用户信息。然后在进行验证时,我们通过 for...of 循环来遍历这个对象数组,比对用户输入的用户名和密码信息是否与已注册的用户信息相符合。如果匹配成功,我们就弹出登录成功的提示框,如果匹配失败,则弹出无效的用户名或密码的提示框。

最终,我们的完整的 HTML、CSS 和 JavaScript 代码如下所示:

<!DOCTYPE html>

<html>

<head>

<title>Password protected page</title>

<style>

form {

margin: 50px auto;

padding: 20px;

border: 1px solid #ccc;

width: 300px;

background-color: #f2f2f2;

border-radius: 5px;

}

label {

display: inline-block;

margin-bottom: 5px;

}

input[type="text"],

input[type="password"] {

width: 100%;

padding: 10px;

border-radius: 5px;

border: 1px solid #ccc;

margin-bottom: 20px;

font-size: 16px;

}

input[type="submit"] {

background-color: #4CAF50;

color: #fff;

border: none;

padding: 10px 20px;

text-align: center;

text-decoration: none;

display: inline-block;

font-size: 16px;

border-radius: 5px;

cursor: pointer;

}

</style>

</head>

<body>

<form>

<label for="username">Username:</label>

<input type="text" id="username" name="username">

<label for="password">Password:</label>

<input type="password" id="password" name="password">

<input type="submit" value="Submit">

</form>

<script>

const form = document.querySelector('form');

const username = document.querySelector('#username');

const password = document.querySelector('#password');

const users = [

{

username: 'admin',

password: '123456'

},

{

username: 'test',

password: '654321'

}

];

form.addEventListener('submit', e => {

e.preventDefault();

const usernameValue = username.value.trim();

const passwordValue = password.value.trim();

for (const user of users) {

if (user.username === usernameValue && user.password === passwordValue) {

alert('Login success!');

return;

}

}

alert('Invalid username or password!');

});

</script>

</body>

</html>

最终,我们的网页效果图如下所示:

总结

通过本文的介绍,我们学习了如何使用 HTML、CSS 和 JavaScript 来密码保护页面。我们学习了 HTML 页面的基本结构,以及如何通过 CSS 样式来美化页面,让其看起来更加美观、直观。最后,我们通过 JavaScript 实现了用户输入的用户名和密码验证,从而保护了页面的安全性。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。