VBScriptで記述されたフレームワークがあります。このフレームワークの一部の関数の内部では、関数のパラメーターがIfステートメントでNothingに対してチェックされ、いくつかのアクションが実行されます。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の場合:なし、Null、Null。
IE9でJavaScriptからVBScriptにNothingを渡すにはどうすればよいですか?
すみません、醜いのはわかっていますが、閉じ込められています。そして、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に分割する必要があります。