2016-12-12 20 views
2

所以這是我有的代碼,當點擊我的導航欄中的一個頁面時會提示這個代碼,提示框確實出現並要求輸入,但無論我輸入什麼都不會發生:提示不起作用

function AlertFunction() { 
    var person = prompt("Please Enter Password to enter Private Chat"); 

    if (person === Python) { 
    window.location.pathname = 'index.1.html'; 
    } else { 
    alert("Sorry you do not have access to this page"); 
    } 
} 

我會在這裏把網站,並儘量保持它的在線方式,您可以查看頁面,如果你想:https://project-js-imthatguy.c9users.io/index.html

+1

按F12(在windows上)打開調試控制檯。我猜它會說'Python'是錯誤的,應該是'「巨蟒」'加上引號 – Martijn

回答

2

返回值從prompt()始終是一個字符串。如果您想根據「Python」的實際值來測試響應,則需要使用引號。另外,請記住字符串區分大小寫,所以「python」不等於「Python」。

如果Python不應該是字面值,那麼它是一個變量,並且您似乎沒有聲明或初始化該位置。

function AlertFunction() { 
 
    var person = prompt("Please Enter Password to enter Private Chat"); 
 

 
    // Strings are case-sensitive 
 
    if (person === "Python") { 
 
    window.location.pathname = 'index.1.html'; 
 
    } else { 
 
    alert("Sorry you do not have access to this page"); 
 
    } 
 
} 
 

 
AlertFunction();

+0

是,就是這樣,我忘了「」報價,謝謝 – ImThatGuy

+1

@ImThatGuy您的歡迎,別忘了給予好評並標記爲答案。 –

+1

是的,我得到了它,它讓我等待 – ImThatGuy

1

Python是一個未聲明的變量。當JS引擎嘗試讀取它以將其與person進行比較時,它會引發引用錯誤並中止腳本。

你需要用引號包圍它,使它一個字符串。

+0

是奏效謝謝 – ImThatGuy

0

Python是沒有定義,我假設你的意思是寫「巨蟒」

你應該不是你的HTML/JS或客戶端內存儲密碼一般。 EVER。

+0

怎麼回事,我應該把它再 – ImThatGuy

+0

你需要做的是在你的數據庫/服務器端和一般的密碼是棘手的業務,應該散列和醃製最大的安全性 – Mathspy

+0

[你可以閱讀更多關於它在這裏] [https://crackstation.net/hashing-security.htm] – Mathspy