Mam framework napisany w VBScript. Wewnątrz jakiejś funkcji w tym frameworku parametr funkcji jest sprawdzany pod kątem Nothing w instrukcji If, a następnie wykonywane są pewne akcje. Kod wykorzystujący framework napisany w Javascript. Więc muszę przekazać Nic do funkcji, aby wykonać pewne czynności. W IE8 i wcześniejszych wersjach działało następne podejście:
<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>
W IE <9 wyjście będzie: Nothing, Null, Nothing.
W IE9: Nothing, Null, Null.
Jak mogę przekazać Nothing z JavaScript do VBScript w IE9?
Przepraszam, wiem, że to brzydkie, ale jestem uwięziony. I nienawidzę VBScript.
edycja: Jest przykład funkcji frameworka. Nie mogę tego zmienić, ponieważ jest szeroko stosowany w aplikacji.
Function ExampleFunction(val)
If (val Is Nothing) Then
ExampleFunction = 1
Else
ExampleFunction = 0
End If
End Function
Aktualizacja
Rzucił pracę. Znalazłem lepszy.
IsObject(val) And val Is Nothing
nadal będzie skutkować błędem. Będziesz musiał podzielić go na zagnieżdżone If.