VBScript ile yazılmış bir çerçevem var. Bu çerçevedeki bazı işlevlerin içinde, işlevin parametresi, If deyiminde Hiçbir Şey için kontrol edilir ve ardından bazı eylemler yürütülür. Javascript ile yazılmış çerçeveyi kullanan kod. Bu yüzden bazı eylemleri gerçekleştirmek için Nothing geçmem gerekiyor. IE8 ve önceki sürümlerde sonraki yaklaşımda çalıştı:
<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'da çıktı: Nothing, Null, Nothing olacaktır.
IE9'da: Hiçbir şey, Null, Null.
IE9'da Javascript'ten VBScript'e hiçbir şeyi nasıl geçirebilirim?
Üzgünüm, çirkin olduğunu biliyorum ama tuzağa düştüm. Ve VBScript'ten nefret ediyorum.
düzenleme: Çerçeve işlevi için bir örnek var. Uygulamada yaygın olarak kullanıldığı için değiştiremem.
Function ExampleFunction(val)
If (val Is Nothing) Then
ExampleFunction = 1
Else
ExampleFunction = 0
End If
End Function
Güncelleme
İşten ayrıldı. Daha iyi bir tane buldum.
IsObject(val) And val Is Nothing
yine de bir hatayla sonuçlanacaktır. İç içe geçmiş bir If'ye bölmeniz gerekecek.