Eu tenho uma estrutura escrita em VBScript. Dentro de alguma função neste parâmetro de estrutura da função é verificada a instrução Nothing in If e algumas ações executadas. Código que usa estrutura escrita em Javascript. Então, eu preciso passar o Nothing para funcionar para executar algumas ações. No IE8 e versões anteriores funcionou a próxima abordagem:
<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>
No IE <9, a saída será: Nothing, Null, Nothing.
No IE9: Nada, Nulo, Nulo.
Como posso passar nada do Javascript para o VBScript no IE9?
Desculpe, eu sei que é feio, mas estou preso. E odeio VBScript.
edit: Há um exemplo de função de estrutura. Não posso alterá-lo porque é amplamente utilizado em aplicativos.
Function ExampleFunction(val)
If (val Is Nothing) Then
ExampleFunction = 1
Else
ExampleFunction = 0
End If
End Function
Atualizar
Trabalho encerrado. Encontrei um melhor.
IsObject(val) And val Is Nothing
ainda resultará em um erro. Você precisará dividi-lo em um If aninhado.Respostas:
Infelizmente, você provavelmente está preso aqui - o JavaScript não tem o equivalente a "Nada". Consulte este artigo para obter mais informações.
[Editar] No entanto, o seguinte pode funcionar. No seu VBScript, crie uma função chamada "GetNothing" que retorne "Nothing". No seu JavaScript, use "var jsNothing = GetNothing ()". Vem deste artigo
fonte
Esta pergunta é fascinante, pensei em tentar responder apenas por diversão.
(Parabéns por mixel em conseguir um emprego melhor!)
Eu não tenho acesso ao IE agora, então não posso testar isso, mas e se você tentasse escrever uma função como esta:
Claro que não sei se o script VB permite chamar funções como essa ... e você teria que lidar com mais / menos argumentos.
fonte
Use um valor como zero ou até um número negativo que permita que você use avaliações falsas, para que não precise se preocupar com diferentes navegadores e suas peculiaridades na avaliação do
NULL
objeto.fonte
Como exemplo, algo como isso funcionará, mas se o navegador for o IE11 ou posterior, você precisará da tag 'meta'.
fonte