Saya memiliki kerangka kerja yang ditulis dalam VBScript. Di dalam beberapa fungsi dalam kerangka parameter fungsi ini diperiksa untuk pernyataan Nothing in If dan kemudian beberapa tindakan dieksekusi. Kode yang menggunakan kerangka kerja yang ditulis dalam Javascript. Jadi saya harus meneruskan Nothing to function untuk melakukan beberapa tindakan. Di IE8 dan versi sebelumnya bekerja pendekatan selanjutnya:
<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>
Di IE <9, keluaran akan: Nothing, Null, Nothing.
Di IE9: Nothing, Null, Null.
Bagaimana cara melewatkan Nothing dari Javascript ke VBScript di IE9?
Maaf, saya tahu ini jelek, tapi saya terjebak. Dan benci VBScript.
edit: Ada contoh fungsi kerangka kerja. Saya tidak bisa mengubahnya karena sudah banyak digunakan dalam aplikasi.
Function ExampleFunction(val)
If (val Is Nothing) Then
ExampleFunction = 1
Else
ExampleFunction = 0
End If
End Function
Memperbarui
Berhenti dari pekerjaan. Menemukan yang lebih baik.
IsObject(val) And val Is Nothing
tersebut masih akan menghasilkan kesalahan. Anda harus membaginya menjadi If bersarang.Jawaban:
Sayangnya, Anda mungkin terjebak di sini - JavaScript tidak memiliki padanan "Tidak Ada". Lihat Artikel Ini untuk informasi lebih lanjut.
[Sunting] Namun, berikut ini mungkin berhasil. Di VBScript Anda, buat fungsi yang disebut "GetNothing" yang mengembalikan "Nothing". Dalam JavaScript Anda, gunakan "var jsNothing = GetNothing ()". Berasal dari artikel ini
sumber
Pertanyaan ini menarik, saya pikir saya akan mencoba dan menjawabnya hanya untuk kesenangan saja.
(Selamat untuk mixel karena mendapatkan pekerjaan yang lebih baik!)
Saya tidak memiliki akses ke IE sekarang, jadi saya tidak dapat menguji ini, tetapi bagaimana jika Anda mencoba menulis fungsi seperti ini:
Tentu saja saya tidak tahu apakah skrip VB memungkinkan fungsi panggilan seperti itu ... dan Anda harus berurusan dengan lebih banyak / lebih sedikit argumen.
sumber
Gunakan nilai seperti nol atau bahkan angka negatif yang memungkinkan Anda menggunakan evaluasi yang salah, maka Anda tidak perlu khawatir tentang browser yang berbeda dan kebiasaan mereka dalam mengevaluasi
NULL
objek.sumber
Sebagai contoh, sesuatu seperti ini akan berfungsi tetapi jika browser IE11 atau yang lebih baru, Anda memerlukan tag 'meta'.
sumber