我正在使用this link中的代码在启动我的短文件文件时显示启动画面,该文件从服务器复制一些文件并需要15-20秒,以防止不耐烦的用户多次点击。我得到一个类型不匹配的VBScript错误报告,第1行,第1行,第1代。启动窗口正常加载,但是当它应该关闭时,错误出现并且启动停留在屏幕上(尽管其余的蝙蝠正常运行)
这是vbscript代码
<script language="VBScript">
Sub Window_OnLoad
' Resize and position the window
width = 500 : height = 400
window.resizeTo width, height
window.moveTo screen.availWidth\2 - width\2, screen.availHeight\2 - height\2
' Automatically close the windows after 5 seconds
idTimer = window.setTimeout("vbscript:window.close", 15000)
End Sub
</script>
我想这一行
idTimer = window.setTimeout("vbscript:window.close", 15000)
导致错误。
这只发生在某些计算机上,我没有真正发现它们的常见问题,它们运行的是Windows 7或8.我发现它可以对Internet Explorer updates做一些事情,但不确定是否适用这里没有使用数组(AFAIK)。
此网站上的 One of the answers建议在Set
前设置idtimer
。 - 不适合我
答案 0 :(得分:1)
您可以查看以下链接 - 可能会提供一些见解。
http://www.vbforums.com/showthread.php?342508-How-to-window-close-Resolved
答案 1 :(得分:1)
我可以确认包含示例代码的简单测试HTA文件在Win7 x64上运行正常。
由于您的类型不匹配特指&#34; vbscript&#34;我认为超时调用的vbscript:
部分是问题所在。单词vbscript
按字面解释,冒号分隔下一个语句。也许某些VBScript运行时在全局级别没有名为vbscript
的变量。
当我将字符串更改为&#34; window.close&#34;它工作得很好。试一试,看看是否有帮助。另外,当我将通话更改为明显错误时,例如&#34; abc:window.close&#34;然后我得到你描述的类型不匹配错误。
我认为只需要在HTML锚点HREF属性等中执行vbscript:
或javascript:
前缀(尽管许多浏览器仍然优雅地允许它向后兼容)。