ProgressBar 在 VBScript HTA 中没有得到刷新
Posted
技术标签:
【中文标题】ProgressBar 在 VBScript HTA 中没有得到刷新【英文标题】:ProgressBar not getting refresh in VBScript HTA 【发布时间】:2013-09-10 12:29:52 【问题描述】:我在带有 VB 脚本代码的 HTA 文件中显示了一个进度条。这工作正常,多次点击。问题是,直到发生任何用户交互(如消息框或任何错误窗口)之前,它都不会刷新。如果我在调用不同函数的单个 sub 中调用它,它不会显示进度。
<Script Language="VBScript">
'------------for Progress bar --------------
Public w,x,y, MyTitle
w=100
x=0
y=100
MyTitle = " _ Progress"
'----------- w: bar width, x: done items, y: remaining items
Sub test
Progress(10)
callsubA()
Progress(10)
callsubB()
Progress(20)
callsubC()
Progress(10)
End Sub
Function Progress(step)
x=x+step
d = Round( x / (y/w) +1 ,0)
document.Title = FormatPercent(x/y, 0) & MyTitle
document.all.ProgBarText.innerText = x & "/" & y
document.all.ProgBarDone.innerText = String(d, "_")
If d<w Then
document.all.ProgBarToDo.innerText = String(w-d, "_") & "|"
Else
document.all.ProgBarToDo.innerText = "|"
End If
If x>=y Then
document.all.ProgBarToDo.innerText = ""
MsgBox "Migration Completed"
x=0
d = Round( x / (y/w) +1 ,0)
document.Title = "Completed"
document.all.ProgBarText.innerText = ""
document.all.ProgBarDone.innerText = ""
End If
End Function
</script>
我的 html 看起来像:
<span id="ProgBarText"></span><br>
<span id="ProgBarDone" style="background-color: #3399FF"></span>
<font color="#FFFFFF">
<span id="ProgBarToDo"style="background-color: #C0C0C0"></span>
</font>
如果我在每个 sub 之后都给出 msgbox,那么它可以正常工作....
【问题讨论】:
代码在我测试时为我工作。 【参考方案1】:我使用了一个名为“sleepy”的子程序,它会产生一个近乎即时的“延迟”,它会暂停脚本以允许在其他例程中发生 html 更新。
在更新 InnerHTML 后(或仅在其末尾),在“Progress”函数中添加对该函数的调用。
Sub sleepy
Set objShell = CreateObject("WScript.Shell")
strCmd = "%COMSPEC% /c"
objShell.Run strCmd,0,1
End Sub
【讨论】:
以上是关于ProgressBar 在 VBScript HTA 中没有得到刷新的主要内容,如果未能解决你的问题,请参考以下文章
ProgressBar 没有出现在位于 Fragment 的 WebView 中,如何在 WebView android 中显示 ProgressBar?