не работает обновление глобальной переменной javascript - PullRequest
0 голосов
/ 03 декабря 2018

Я не могу заставить работать базовую вещь - обновлять содержимое глобальной переменной в функции.

, так что в качестве примера приведен упрощенный код:

<html>

  <head>
    <script>
      window.mytestip = "Var set as global"; 
      var ConditionVar = 1;

      if (ConditionVar == 1)(function() {
      mytestip = "Var set to Yes";
      });
      else(function() {
        mytestip = "Var set to No";
      });

    </script>
  </head>

  <body>
    <p> <span id=mytest>-</span> </p>
    <script>
      document.getElementById('mytest').innerHTML = window.mytestip;

    </script>
  </body>

</html>

Почемуmytestip не обновляется?

Вот jfiddle: https://jsfiddle.net/4bu8gp9f/

Разрешение:

Добавление () фактически решило проблему с представленным кодом.Однако мой код был вложенным, и я не мог его использовать.

Вместо этого я решил проблему, установив переменную локального хранилища, и позже извлек ее из локального хранилища:

inфункция: localStorage.setItem ("LocalIp", mytestip);

позже в коде: mytestip = localStorage.getItem ("LocalIp");

Спасибо всем!

Ответы [ 5 ]

0 голосов
/ 03 декабря 2018

Разрешение:

Добавление () фактически решило проблему с представленным кодом.Однако мой код был вложенным, и я не мог его использовать.

Вместо этого я решил проблему, установив переменную локального хранилища, и позже извлек его из локального хранилища:

вфункция: localStorage.setItem ("LocalIp", mytestip);

позже в коде: mytestip = localStorage.getItem ("LocalIp");

Спасибо всем!

0 голосов
/ 03 декабря 2018

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

if (ConditionVar == 1) {
    (function() {
        mytestip = "Var set to Yes";
    })();
} else {
    (function() {
        mytestip = "Var set to No";
    })();
}

Я добавилскобки для организации кода (и рекомендуем всегда это делать)

Если это не так, следуйте другим предложенным ответам.

0 голосов
/ 03 декабря 2018

Я думаю, что ваш if else statement был не прав.

Поэтому я попытался сделать так.

<html>

  <head>
    <script>
      window.mytestip = "Var set as global";
      var RTCPeerConnection = window.webkitRTCPeerConnection || window.mozRTCPeerConnection;

      if (RTCPeerConnection){
        window.mytestip = "Var set to Yes";
      }
      else{
        window.mytestip = "Var set to No";
      }

    </script>
  </head>

  <body>
    <p> <span id=mytest>-</span> </p>
    <script>
      document.getElementById('mytest').innerHTML = window.mytestip;

    </script>
  </body>

</html>
0 голосов
/ 03 декабря 2018

Как сказал Дэниел и Пол в качестве комментария, попробуйте этот код:

if (RTCPeerConnection) {
    window.mytestip = "Var set to Yes";
 }else 
    window.mytestip = "Var set to No";
 }

И не забудьте про кавычку в параметре span span

0 голосов
/ 03 декабря 2018

Вы должны использовать:

if (ConditionVar == 1) {
    mytestip = "Var set to Yes";
} else {
    mytestip = "Var set to No";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...