setInterval работает, когда оповещение включено в условия if, иначе оно срабатывает только один раз

#iframe #setinterval #javascript

#iframe #setinterval #javascript

Вопрос:

этот вопрос может показаться похожим на вопрос, заданный ранее, но это не так.

Мой вопрос следующий: у меня есть фрагмент кода следующего вида :

     var i = 0;              

    function func2() {                  
    if (i==0){

    document.getElementById('frame1').contentWindow.opts[selected].setAttribute('name','channels');
    var strValue = document.getElementById('frame1').contentWindow.opts[selected].getAttribute('name');
   //alert("Attribute value set :"   strValue);
   document.getElementById('frame1').contentWindow.handleKeyCode(VK_ENTER);
   i  ;

   }
   else if(i==1){

   // For Channels section -- "Get current channel details"
   document.getElementById('frame1').contentWindow.opts[selected].setAttribute('name','get');
   var strValue = document.getElementById('frame1').contentWindow.opts[selected].getAttribute('name');
   //alert("Attribute value set :"   strValue);
   document.getElementById('frame1').contentWindow.handleKeyCode(VK_ENTER);
   i  ;

   }
   else if(i==2){

   // For Channels section -- "Set current channel details"
   document.getElementById('frame1').contentWindow.opts[selected].setAttribute('name','set');
   document.getElementById('frame1').contentWindow.menuSelect(1);
   var strValue = document.getElementById('frame1').contentWindow.opts[selected].getAttribute('name');
   //alert("Attribute value set :"   strValue);
   document.getElementById('frame1').contentWindow.handleKeyCode(VK_ENTER);     
   i  ;

   }
   }

   $(function() {
      setInterval(function(){func2();}, 1000);
   });
  

В этом случае setInterval работает только один раз, т. е. он выполняет только первое условие if. Но поскольку я включаю «предупреждающие» сообщения обо всех условиях, тогда setInterval работает нормально.

Мне не нужны «Предупреждающие сообщения» для этого условия setInterval if, оно должно выполняться для каждого состояния if elseif в соответствии с условием и с заданным интервалом времени.

Я могу добиться этого. Также я не нашел ни одной удовлетворительной ссылки из вопросов, связанных с setInterval, на этом форуме. Пожалуйста, помогите.

Спасибо.

Комментарии:

1. Пожалуйста , не выделяйте жирным шрифтом огромные куски вашего вопроса. Это раздражает.

2. почему вы помечаете этот вопрос jQuery, это чистый Javascript, почему бы вам не попробовать с jQuery??

3. Это только jquery, приведенный выше фрагмент кода находится внутри $(document). ready(функция(){ var $frame = $(‘#frame1’); $frame.ready(функция () { ————- }); только.

4. ха-ха, ну, это вызывается через jquery, но в самой функции jquery нет

Ответ №1:

Я полагаю, что вы получаете исключение внутри func2 , из-за которого кажется, что оно выполняется не более одного раза. Чтение .contenWindow, когда оно равно null. Попробуйте использовать try / catch для перехвата исключения. Или используйте отладчик.

Комментарии:

1. Привет, спасибо за ваш ценный ответ на самом деле приведенный выше фрагмент отлично работает, когда я добавляю предупреждающие сообщения в каждое условие if. как вы можете видеть, я прокомментировал, что если я раскомментирую эти предупреждающие сообщения, то все будет работать нормально. Но я не хочу, чтобы отображались предупреждающие сообщения, и все равно это должно работать одинаково.