У меня есть фреймворк, написанный на VBScript. Внутри некоторой функции в этой структуре параметр функции проверяется на Ничего в операторе If, а затем выполняются некоторые действия. Код, использующий фреймворк, написанный на Javascript. Поэтому мне нужно передать 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: Nothing, Null, Null.
Как я могу ничего не передавать из Javascript в VBScript в IE9?
Извините, я знаю, что это уродливо, но я в ловушке. И ненавижу VBScript.
изменить: есть пример функции фреймворка. Я не могу его изменить, потому что он широко используется в приложении.
Function ExampleFunction(val)
If (val Is Nothing) Then
ExampleFunction = 1
Else
ExampleFunction = 0
End If
End Function
Обновить
Уволился с работы. Нашел лучший.
IsObject(val) And val Is Nothing
все равно приведет к ошибке. Вам нужно будет разбить его на вложенный If.