Использование переменной javascript в разных частях кода жидкости - PullRequest
0 голосов
/ 06 февраля 2020

Я полный нуб ... пытаюсь изменить код в моем магазине shopify.

Мне нужно использовать переменную javascript в функции для отображения даты доставки.

Как я могу передать переменную между различными javascript кодами в файле жидкости?

                   {% if shippingtype == 'long' %}         

            <script> var shippingtime = 'long'; </script>

            {% else %}

             <script>  var shippingtime = 'short';   </script>

            {% endif %}


            <script> 

alert(shippingtime); //and do other stuff with variable

</script>

1 Ответ

1 голос
/ 06 февраля 2020

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

<input type="hidden" name="shippingtime" value="{{ shippingtime }}"/>   

Затем в JavaScript проверьте value этого элемента input и обработайте соответственно.

// Select the input.
const input = document.querySelector('input[name="shippingtime"]');

// Get the value of the input.
const { value } = input;

Всякий раз, когда вы перемещаетесь по странице, вы перезагружаете все, включая все JS. Но вы можете хранить переменные с Web Storage API. Сохраните их в сеансе с sessionStorage (сохраняется до закрытия браузера) или неопределенно с localStorage. В этом примере я буду использовать sessionStorage.

// Stores the value.
sessionStorage.setItem('shippingtime', value);

. На другой странице вы можете проверить, есть ли в хранилище элемент с именем shippingtime.

const shippingTime = sessionStorage.getItem('shippingtime');
if (shippingTime !== null) {
  // Use the shippintTime value here.
  console.log(shippingTime);
}

Надеюсь, это поможет Вы вышли Если у вас есть какие-либо вопросы или мне неясно, пожалуйста, дайте мне знать.

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