Я создал простую страницу ASP.Net для html. Я хотел бы поставить проверку пароля, ТОЛЬКО, когда страница изначально загружена, я сделал это со сценарием и назначил тег onload на тел. Проблема в том, что проверка пароля запускается каждый раз, когда я нажимаю кнопку. Почему это происходит? Как я могу выполнить проверку пароля ТОЛЬКО при открытии страницы? Спасибо заранее.Сценарий HTML onload запускается слишком много раз?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FotoDiClasse.aspx.cs" Inherits="FotoDiClasse" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Choose your sweatshirt</title>
<!-- password control -->
<script>
var password;
var pass1 = "1234";
var firstTime = true;
function checkPassword()
{
if (firstTime)
firstTime = false;
password = prompt("Enter password to access the site", '');
if (password != pass1) window.location = "http://www.google.com";
}
</script>
</head>
<body onload="checkPassword()">
<form id="form1" runat="server">
<div>
<asp:Button ID="CreateButton" runat="server" Text="Create" Width="240px" OnClick="CreateButton_Click" />
<asp:Button ID="SendButton" runat="server" Text="Send" Width="240px" OnClick="SendButton_Click" />
</div>
</form>
</body>
</html>
Этот флаг «первый раз» не работает
Следует отметить, что 'password = prompt ...' будет работать независимо от того, является ли firstTime истинным или нет, потому что вы не используете фигурные скобки вокруг своих операторов if. Просто потому, что вы отступаете от кода, это не значит, что код не будет работать. –