Итак, это код, который у меня есть и который вызывается при нажатии на страницу в моей навигационной панели, и появляется окно с запросом ввода, но независимо от того, что я ввожу, ничего не происходит:

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

2
ImThatGuy 12 Дек 2016 в 23:40

3 ответа

Лучший ответ

Возвращаемое значение из 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();
2
GG. 12 Дек 2016 в 20:51

Python не определен, я предполагаю, что вы хотели написать "Python"

И вы не должны хранить пароли внутри вашей HTML / JS или клиентской части в целом. КОГДА-ЛИБО.

0
Mathspy 12 Дек 2016 в 20:47

Python - необъявленная переменная. Когда механизм JS пытается прочитать его, чтобы сравнить с person, он выдает ошибку ссылки и прерывает сценарий.

Вам нужно заключить его в кавычки, чтобы сделать его строковым литералом.

1
Quentin 12 Дек 2016 в 20:43