检查javascript函数是否未完成

时间:2013-06-05 15:04:12

标签: javascript debugging scriptaculous adblock

由于我为firefox安装了Adblock Plus(用于阻止广告的附加组件),所以每个由scriptaculous驱动的动画都不再起作用(不仅仅在我的网站上)。

现在我知道了,我正在寻找一种方法来检查javascript函数是否未完成(就像我调用我的scriptaculous动画一样)。

<script type="text/javascript">

function scriptaculous(){

  new Effect.Morph("thumb_id", { style: "height:300px;", duration: 0.8 });

}

function enlarge_thumbnail(){

  scriptaculous();

// if( scriptaculous() was not completed ){

   document.getElementById("thumb_id").style.height = "300px";

// }

}

</script>

真正的问题是我不仅可以调用它们,因为第一个错误并阻止第二个错误加载。谁知道如何处理?

1 个答案:

答案 0 :(得分:0)

每当任何效果开始等,它们都会被添加到全局效果队列中,因此您可以检查队列是否存在以及队列中有多少效果。

if(Effect.Queues.get('global').effects.length == 0)
{
    //do something else

}

另外因为效果方法会立即返回,所以你不会确切知道效果什么时候结束,除非你使用afterFinish这样的回调

new Effect.Morph("thumb_id",
                        { 
                         style: "height:300px;", 
                         duration: 0.8, 
                         afterFinish: function(effect){
                           //do other things when the effect is finished
                           //the callback is passed the effect object
                           //and the element it is working on is at effect.element
                         } });