我正在使用此链接中的代码在启动我的简短bat文件期间显示启动画面,该文件从服务器复制了一些文件,耗时15-20秒,以防止不耐烦的用户多次单击。我收到类型不匹配的VBScript错误报告,行1,字符1,代码0。启动窗口正常加载,但是当它关闭时,会出现错误,启动屏幕停留在屏幕上(尽管蝙蝠的其余部分正常运行) 。
这是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更新进行某些操作,只是不确定它是否适用于此处,因为没有使用的数组(AFAIK)。
该站点的答案之一建议您设置Set
为idtimer
。-不为我工作
我可以确认包含您的示例代码的简单测试HTA文件在Win7 x64上可以正常工作。
由于您的类型不匹配是专门针对“ vbscript”的,因此我被认为是vbscript:
超时调用的一部分。该词按vbscript
字面意义进行解释,冒号分隔下一条语句。也许某些VBScript运行时没有vbscript
在全局级别调用的变量。
当我将字符串更改为简单的“ window.close”时,它也可以正常工作。试试看,看看是否有帮助。另外,当我将呼叫更改为公然错误时,例如“ abc:window.close”,那么我会收到您所描述的Type Mismatch错误。
我相信,仅在HTML锚点HREF属性等中才需要执行“vbscript:
或”或“javascript:
前缀”操作(尽管许多浏览器还是为了向后兼容而优雅地允许这样做)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句