Как обновить переменную в файле JS с дочерней страницы aspx

У меня есть файл JS с кодом ниже. Мне нужно обновить значение переменной currentIndex со своей дочерней страницы aspx. Прямо сейчас это js refrence находится над родительской страницей. Я хотел бы знать, как это сделать. Какой синтаксис должен быть передан со страницы child.aspx, чтобы везде обновленное значение currentIndex.

(function($, global, undefined) {
  var slides, currentIndex, $container, $fragmentLinks;

  var events = {
...
     prev: function() {
       methods.go(currentIndex-1);
     },
...

1 ответ

Вы могли бы выставить функцию, которая будет изменять currentIndex переменная к глобальной области видимости. Но этот подход плохо масштабируется и должен рассматриваться как плохая практика, поскольку он может привести к конфликтам имен и другим недостаткам. Как избежать глобальных переменных в JavaScript?, Поэтому, если вам нужен доступ к родительской странице из дочерних фреймов, вам следует подумать о более эффективном подходе, таком как общение через сообщения /questions/5684496/vyizov-roditelskoj-okonnoj-funktsii-iz-iframe/5684505#5684505 или аналогичная пользовательская реализация.

В настоящее время самый простой способ решить вашу проблему - определить функцию установки, которая будет обновлять currentIndex переменная:

(function($, undefined) {
  var slides, currentIndex, $container, $fragmentLinks;

  window.setCurrentIndex = function(indexValue) {
    currentIndex = indexValue;
  };

  var events = {
...
     prev: function() {
       methods.go(currentIndex-1);
     },
...

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

window.setCurrentIndex(3);
Другие вопросы по тегам