我是 vbscript 的新手,在阅读时我发现了一些代码
Do While ie.busy
stateString = stateString & " " & cstr(ie.readystate)
loop
do while ie.readystate <> 4
stateString = stateString & " " & ie.readystate
loop
所以任何人都可以让我知道忙碌property
和readystate
财产之间的区别。
我是 vbscript 的新手,在阅读时我发现了一些代码
Do While ie.busy
stateString = stateString & " " & cstr(ie.readystate)
loop
do while ie.readystate <> 4
stateString = stateString & " " & ie.readystate
loop
所以任何人都可以让我知道忙碌property
和readystate
财产之间的区别。
从这里:
迈克尔哈里斯(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% 可靠。在 .ReadyState 最终到达 4(完成)之前,在某些情况下,似乎 .Busy 会振荡 true/false/true/...。
这种振荡行为可能是当前版本中修复的错误,但在我看来,忙碌的描述比以前更好(至少我记得很多年前读过它)。它简单地说明 IE 正忙于导航或下载,并且没有明确说明与文档本身在构建 DOM 和页面实际呈现在浏览器 UI 中时所经历的各种状态的任何联系。
使用 .ReadyState 而不是 .Busy 避免的问题是在尝试访问/操作不完整 DOM 的脚本中引发的错误。