2012-04-09 113 views
2

我是新来的VBScript和边阅读我发现了一些代码Internet Explorer的自动化忙V/S readystate属性

Do While ie.busy 
stateString = stateString & " " & cstr(ie.readystate) 
loop 
do while ie.readystate <> 4 
stateString = stateString & " " & ie.readystate 
loop 

所以任何人都可以请让我知道什么是忙碌propertyreadystate财产之间的差异。

回答

4

here

迈克尔·哈里斯(MVP)写道:

 [...] 
     do until ie.readyState = 4 : wscript.sleep 10 : loop 
     [...] 


    Is there a reason to use 
     do until ie.readyState = 4 : wscript.sleep 10 : loop 
    instead of 
     While ie.Busy : WScript.Sleep 10: Wend 
    [...] 

正是基于过去在许多不同的IE自动化的场景我观察到IE.Busy确定是不是100%可靠的体验文档的完全加载状态。它出现了.Busy会在真实/错误/真实/ ...在某些情况下摆动.ReadyState终于到达4(完成)。

那振荡行为可能已被固定在当前版本中的错误,但在我看来,更可能是中忙碌的描述比以前更好(至少我记得读它很多年前)。它简单地指出,IE浏览器忙于导航或下载,并且没有明确说明与构建DOM时文档本身经历的各种状态的任何关联,并且页面实际上在浏览器UI中呈现。

使用.ReadyState而不是.Busy避免的问题是在尝试访问/操作不完整DOM的脚本中引发的错误。

+0

感谢您分享您的体验。 – orad 2014-09-29 19:29:33