如果条件中包含警报,则setInterval有效,否则只能运行一次

时间:2011-04-19 04:36:38

标签: 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 elseif语句。

我能够实现这一目标。此外,我没有在本论坛的setInterval相关问题中找到任何令人满意的参考。请帮忙。

感谢。

1 个答案:

答案 0 :(得分:1)

我相信你在func2内部遇到异常,这使得它似乎没有多次运行。读取.contenWindow为null。尝试使用try / catch来捕获异常。或者使用调试器。