Javascript 如何在导航到其他选项卡之前在函数中设置超时
我想在函数导航到另一个选项卡之前设置一个特定的超时Javascript 如何在导航到其他选项卡之前在函数中设置超时,javascript,Javascript,我想在函数导航到另一个选项卡之前设置一个特定的超时 somefunc: function() { PageFrame.goToTab('test', function(item) { if(!item.search){ return false; } //else do some stuff }, this); } 问题是当调用PageFrame.goToTab重定向到“#test”页面时,测试页面没有完
somefunc: function() {
PageFrame.goToTab('test', function(item) {
if(!item.search){
return false;
}
//else do some stuff
}, this);
}
问题是当调用PageFrame.goToTab
重定向到“#test”页面时,测试页面没有完全加载,因此我在项上得到了一个未定义的搜索
,尽管它是在抛出错误后加载的。因此,我想为函数添加一个等待页面加载的超时,然后检查此条件:if(!item.search){}
如何实现这一点?正如Jaromand X所说,您应该使用一个事件来告诉您页面何时已完全加载,而不是设置一个超时。From“GlobalEventHandlers mixin的onload属性是窗口、XMLHttpRequest、元素等的load事件的事件处理程序,它在加载资源时激发。” 这意味着一旦窗口内容完成加载,将触发onload事件 要使用这样的事件,您必须使用assing和“事件处理程序”,这是一个在事件触发时运行的函数 在您的情况下,您应该这样做:
function somefunc() {
PageFrame.goToTab('test', function(item) {
if(!item.search){
return false;
}
//else do some stuff
}, this);
}
window.onload = somefunc;
因此,当onload事件触发时,“somefunc”将运行。您不需要编写window.onload=somefunc();因为指定为事件处理程序的是指向函数的指针。等待页面加载的超时不是最佳做法-最好使用eventsFix
goToTab
,这样它在加载选项卡后才调用回调。@Barmar:更改goToTab不是一个好主意,因为它是多个用户使用的全局方法apps@Jaromanda 你有前男友吗?那也许你应该用其他方法。关键是应该有一个方法动态加载数据,它应该接受回调,这就是您可以访问项.search
的地方。但这不会在执行func之前设置任何延迟时间。不确定window.onload如何帮助我在执行审阅队列中的条件之前完全加载页面:我可以请求您在源代码周围添加一些上下文吗。只有代码的答案很难理解。如果你能在你的文章中添加更多的信息,这将有助于询问者和未来的读者。
somefunc: function() {
setTimeout(function() {
PageFrame.goToTab('test', function(item) {
if(!item.search){
return false;
}
//else do some stuff
}, this);
}, 5000);
}