Ich habe ein Framework in VBScript geschrieben. Innerhalb einer Funktion in diesem Framework wird der Parameter der Funktion auf Nothing in If-Anweisung überprüft und anschließend werden einige Aktionen ausgeführt. Code, der ein in Javascript geschriebenes Framework verwendet. Ich muss also Nothing übergeben, um einige Aktionen ausführen zu können. In IE8 und früheren Versionen funktionierte der nächste Ansatz:
<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>
In IE <9 wird Folgendes ausgegeben: Nichts, Null, Nichts.
In IE9: Nichts, Null, Null.
Wie kann ich in IE9 Nothing von Javascript an VBScript übergeben?
Entschuldigung, ich weiß, dass es hässlich ist, aber ich bin gefangen. Und hasse VBScript.
edit: Es gibt ein Beispiel für eine Framework-Funktion. Ich kann es nicht ändern, weil es in der Anwendung weit verbreitet ist.
Function ExampleFunction(val)
If (val Is Nothing) Then
ExampleFunction = 1
Else
ExampleFunction = 0
End If
End Function
Aktualisieren
Job gekündigt. Fand einen besseren.
quelle
IsObject(val) And val Is Nothing
immer noch zu einem Fehler. Sie müssen es in ein verschachteltes If aufteilen.Antworten:
Leider stecken Sie wahrscheinlich hier fest - JavaScript hat kein "Nichts" -Äquivalent. Weitere Informationen finden Sie in diesem Artikel .
[Bearbeiten] Folgendes kann jedoch funktionieren. Erstellen Sie in Ihrem VBScript eine Funktion namens "GetNothing", die "Nothing" zurückgibt. Verwenden Sie in Ihrem JavaScript "var jsNothing = GetNothing ()". Kommt aus diesem Artikel
quelle
Diese Frage ist faszinierend, ich dachte, ich würde versuchen, sie nur zum Spaß zu beantworten.
(Herzlichen Glückwunsch zu einem besseren Job!)
Ich habe momentan keinen Zugriff auf den IE, daher kann ich dies nicht testen, aber was ist, wenn Sie versucht haben, eine Funktion wie diese zu schreiben:
Natürlich weiß ich nicht, ob das VB-Skript das Aufrufen solcher Funktionen erlaubt ... und Sie müssten sich mit mehr / weniger Argumenten befassen.
quelle
Verwenden Sie einen Wert wie Null oder sogar eine negative Zahl, mit der Sie einfach falsche Auswertungen verwenden können. Dann müssen Sie sich bei der Auswertung des
NULL
Objekts keine Gedanken über verschiedene Browser und deren Macken machen .quelle
Als Beispiel funktioniert so etwas, aber wenn der Browser IE11 oder höher ist, benötigen Sie das 'Meta'-Tag.
quelle