我有一个用VBScript编写的框架。在此框架的某个函数内部检查函数的If语句中是否为Nothing,然后执行某些操作。使用Java编写的框架的代码。因此,我需要通过Nothing来执行某些操作。在IE8和更早版本中,采用了以下方法:
<script type="text/vbscript">
Function Test(val)
If (IsNull(val)) Then
Test = "Null"
ElseIf (IsObject(val)) Then
If (val Is Nothing) Then
Test = "Nothing"
End If
End If
End Function
Dim jsNothing
Set jsNothing = Nothing
msgBox(Test(jsNothing))
msgBox(Test(Null))
</script>
<script type="text/javascript">
alert(Test(jsNothing));
</script>
在IE <9中,输出将为:Nothing,Null和Nothing。
在IE9中:无,无,无。
如何在IE9中将Javathing Nothing传递给VBScript?
抱歉,我知道它很丑,但是我被困了。并讨厌VBScript。
编辑: 有一个框架功能的例子。我无法更改它,因为它已在应用程序中广泛使用。
Function ExampleFunction(val)
If (val Is Nothing) Then
ExampleFunction = 1
Else
ExampleFunction = 0
End If
End Function
更新资料
辞职了 找到了更好的一个。
我对您来说太过本地化了。将来,您可以标记以告知我们:)
—
Tim Post
VBScript是否具有And Also?我知道VB.Net拥有它。尽管很la脚,但至少会造成短路。
—
vbullinger
@vbullinger:不,它没有惰性逻辑。blogs.msdn.com/b/ericlippert/archive/2004/07/15/184431.aspx-Eric Lippert的文章。
—
mixel 2012年
IsObject(val) And val Is Nothing
仍将导致错误。您必须将其拆分为嵌套的If。