window.location.href перенаправляет, но не получает URL - PullRequest
1 голос
/ 09 апреля 2020

КОД

<script>
  window.location.href = 'SomeSite.php';   // THIS WORKS
  var x = window.location.href;            // THIS DOES NOT!  
  alert("X : ",x);                         // Shows X : 
</script>

У меня нет функции или что-нибудь еще. Я просто запускаю этот код скрипта в моем HTML файле, и он работал в течение нескольких месяцев. Я понятия не имею, почему это не работает прямо сейчас. Как получается, что я могу перенаправить страницу, используя window.location.href , но не получить текущий URL?

Ответы [ 4 ]

0 голосов
/ 09 апреля 2020

Изменено var на const. Смотрите другие ответы относительно объединения. Изменены литералы шаблона.

<script>
    // window.location.href = 'SomeSite.php'; // THIS WORKS
    alert(window.location.href);
    const x = window.location.href;
    alert(`x: ${x}`)
</script>
0 голосов
/ 09 апреля 2020

Вместо запятой вам нужно использовать + для правильной конкатенации двух значений вместе, это просто присоединение переменной x к печати. ​​

Если вы должны были распечатать x само по себе вы получите значение, но в вашем контексте проблема была в неправильной конкатенации.

0 голосов
/ 09 апреля 2020

Чтобы добавить строку к другой в javascript, вы должны использовать оператор +. Вы не можете использовать запятую. Поставьте его только тогда, когда вы используете функцию, которая требует нескольких параметров.

Потому что здесь alert() подумал, что вы вводите второй параметр!

Например:

let string1 = "Hello, "; //Define the first variable.
let string2 = "world!";  //And the second one.

alert(string1 + string2);//Show a message and join the two strings together!

Здесь вы можете использовать запятую:

<script>
   let string = "We hate the earth!";
   string = string.replace("hate", "love"); //FYI: replace() is used to replace a sequence of characters by an another.
</script>

Таким образом, ваш код должен быть:

<script>
  var x = window.location.href;
  alert("X : " + x);           //Join "X : " and x together!
</script>
0 голосов
/ 09 апреля 2020

Вместо alert("X : ",x); Попробуйте использовать alert("X : " + x);. Это должно решить это. Когда вы помещаете запятую в функцию оповещения, она может рассматриваться как другой параметр, поэтому вам нужно объединить, используя «+».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...