2016-12-28 20 views
0

我有一个在我的javascript中的功能,其中网页内容将更新窗口的大小调整。我想用javascript自动调整窗口大小来监视它。如何使用Java脚本中的时间延迟监视窗口大小更改?

对于这一点,我想的东西,看起来像下面:

<script> 
    var myWindow = window.open("", "", "width=1000,height=1000"); 
    setTimeout("",5000); 
    myWindow.resizeTo(700,700); 
    setTimeout("",5000); 
    myWindow.resizeTo(500,500); 
    setTimeout("",5000); 
</script> 

但它打开一个窗口,其中第一配置(宽度= 500和高度= 500)。在延迟时间间隔后它不会改变它的大小。

我无法弄清楚这里出了什么问题?有人能帮我弄清楚我在这里做错了吗?

回答

1

的Javascript setTimeout是异步

console.log("a"); 
setTimeout(function(){ 
    console.log("b"); 
}, 5000); 
console.log("c"); 

会打印:

a 
c 
b 

它不会阻止像您可以使用wait或其他语言sleep

所以你要做的:

var myWindow = window.open("", "", "width=1000,height=1000"); 
setTimeout(function(){ 
    myWindow.resizeTo(700,700); 
    setTimeout(function(){ 
     myWindow.resizeTo(500,500); 
    }, 5000); 
}, 5000); 
+0

嗨,你好,感谢您的答复。它的工作:)。为什么我不能在没有嵌套的情况下指定setTimeout? – Madhusudan

+0

因为5秒后执行的代码位于回调函数内部,所以你的继续程序就在那里。因此,如果您想在嵌套函数中再等5秒钟,那就在那里。 您也可以在5000,10000和15000ms的连续时间内启动3个超时,以避免嵌套,但这不适用于一般情况。 为了简化编写异步代码,Javascript有承诺,但暂时可能超出您的技能。 – Pierre