如何在导航到其他选项卡之前在函数内设置Timeout

时间:2017-05-24 23:16:32

标签: javascript

我想在函数导航到另一个标签之前设置一个特定的超时时间。

somefunc: function() {
    PageFrame.goToTab('test', function(item) {
        if(!item.search){

            return false;
        }
        //else do some stuff
    }, this);
}

问题是当调用PageFrame.goToTab重定向到“#test”页面时,测试页面还没有完全加载,因此我在item.search上得到一个未定义的,尽管它在错误已被抛出。因此,我想为函数添加一个超时,等待页面加载,然后检查这个条件:if(!item.search){}

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

正如Jaromand X所说,您应该使用一个事件来告诉您页面何时完全加载而不是设置超时。来自MDN Documentation " GlobalEventHandlers mixin的onload属性是Window,XMLHttpRequest,element等的load事件的事件处理程序,它在资源加载时触发。&#34 ;

这意味着一旦窗口内容完成加载,就会触发onload事件。

要使用此类活动,您必须提供帮助和事件处理程序'这是一个在事件触发时运行的函数。

在你的情况下你应该这样做:

gsub

所以你' somefunc'将在onload事件触发时运行。你不写window.onload = somefunc();因为你指定为事件处理程序的是指向你的函数的指针。

答案 1 :(得分:0)

somefunc: function() {
      setTimeout(function() {
           PageFrame.goToTab('test', function(item) {
           if(!item.search){

               return false;
           }
           //else do some stuff
       }, this);
    }, 5000);
}