2011-04-19 37 views
0

这个问题可能似乎是前面提到的类似问题,但它不是。当条件中包含警报时,setInterval可以工作,否则它只能工作一次

我的问题是以下几点: 我的代码片段如下:

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 else语句。

我可以实现这一点。我也没有找到任何令人满意的参考从这个论坛setInterval相关的问题。请帮忙。

谢谢。

+0

*请*,不要大胆你的问题大块。它很烦人。 – Blender 2011-04-19 04:45:30

+0

为什么你用jQuery标记这个问题,这是纯Javascript,你为什么不试试用jQuery? – diEcho 2011-04-19 04:48:57

+0

这只是jquery,上面的代码片段在$(document).ready(function(){var $ frame = $('#frame1'); $ frame.ready(function(){------- ------}); only。 – Kamakshi 2011-04-19 05:06:32

回答

1

我相信你在func2里面得到了一个例外,这使得它看起来好像没有运行多次。当它为空时读取.contenWindow。尝试使用try/catch来捕获异常。或者使用调试器。

+0

您好,感谢您宝贵的回复,其实上面的代码片段工作正常,当我添加警报消息每个条件如果你可以看到我目前评论,如果我取消注释这些警报消息,那么它的工作正常。但我不想要显示警报消息,仍然应该工作相同。 – Kamakshi 2011-04-19 05:52:00