2017-11-20 17 views
0

다음 스 니펫을 작성하여 내 사이트에서 비밀번호를 사용하도록 설정했지만 브라우저의 다른 탭으로 이동하면 비밀번호 확인 메시지가 사라지고이 기능은 더 이상 유용하지 않습니다.다른 탭으로 이동하면 자바 스크립트 프롬프트 창이 사라집니다.

function passWord(title) { 

     var pwd = prompt(title); 

     switch (pwd) { 
     case '2017': true; 
      break; 

     case null: passWord('Access Denied - Password Incorrect, Please Try Again.'); 
      break; 

     default: passWord('Access Denied - Password Incorrect, Please Try Again.'); 
     } 
    } 

본문 태그에서이 함수를 호출합니다.

<body onload="passWord('Please enter password here')"> 
+2

올바른 방법은 서버에서 암호로 보호 된 데이터를 서버에 안전하게 작성하는 것입니다. 클라이언트 쪽 JavaScript는 보안이 아닙니다. –

+0

감사합니다. @CelebBlack. 나는 단지 짧은 시간의 해결책을 찾고 있지만, 네가 절대적으로 옳다. –

답변

0

이 방법을 시도 할 수 있습니다 : @Caleb 블랙 주석으로

<style>#screen {display: none;}</style> 
<body onload="passWord();"> 
    <div id="welcome"> 
    <h1>Welcome Page</h1> 
    </div> 
    <div id="screen"> 
    <h1>Unique Page</h1> 
    </div> 
    <script> 
    function passWord() { 
     var welcome = document.getElementById("welcome");  
     var screen = document.getElementById("screen"); 
     var pwd = prompt("Enter your password", "TYPE HERE"); 
     switch(pwd) { 
     case "2017": 
      screen.style.display = "block"; 
      welcome.style.display = "none"; 
     break; 
     default: 
      screen.style.display = "none"; 
      welcome.style.display = "block"; 
     } 
    } 
    </script> 
</body> 

을 - 그것은이 일 경우 보안 문제에 관해서는 PHP를 사용 낫다. 행운을 빕니다!

+0

@AMeshu 함수가 프롬프트 이벤트가 사라지는 문제를 어떻게 해결하는지 이해할 수 없습니다. 좀 더 정교하게 제발 주시겠습니까? –

+0

다른 접근법입니다. 사용자가 올바른 암호를 입력하지 않으면 내용을 숨 깁니다. –

0

당신은 사용자가 다시 페이지 때 볼 수있는 focus 이벤트를 사용할 수 있습니다 :이라고하지만 명심

var didEnterPassword = false; 

window.addEventListener("focus", function(e){ 
    if(!didEnterPassword && prompt("hello again") == "my secret password"){ 
     didEnterPassword = true; 
    } 
}) 

가 시작할 때 my secret password을 얻을 수있는 사람부터 매우 불안 코드를 파헤 치십시오.