• | VBScript 只有一种数据类型,即 Variant,这种数据类型可以包含很多不同类型的数据。 |
• | JScript 具有用于字符串、数字和布尔值的基元数据类型,以及用于对象和数组的引用数据类型。 |
VBScript 可以解释 JScript 基元数据类型,因此您可以将所需的函数包装在一个自定义 VBScript 函数中。对此,请看下面的代码示例。
<HTML> <HEAD> <SCRIPT LANGUAGE="JScript"> var xmas = "December 25,2001"; function showToday() { alert( "Today is " + Today() ); } function showTomorrow() { alert( "Tomorrow is " + Tomorrow() ); } function showTime( date ) { alert( "The date is " + AnyTime( date ) ); } function showDaysUntilXmas() { alert( "" + DaysUntilXmas() + " days until Xmas" ); } </SCRIPT> <SCRIPT LANGUAGE="VBScript"> Function Today() Today = FormatDateTime( Date ) End Function Function Tomorrow() Tomorrow = FormatDateTime( DateAdd( "d", 1, Date ) ) End Function Function AnyTime(TheDate) AnyTime = FormatDateTime( CDate(TheDate) ) End Function Function DaysUntilXmas() DaysUntilXmas = DateDiff( "d", Date, CDate(xmas) ) End Function </SCRIPT> </HEAD> <BODY> <BUTTON ONCLICK="showToday()">Display today's date</BUTTON> <BUTTON ONCLICK="showTomorrow()">Display tomorrow's date</BUTTON> <BUTTON ONCLICK="showTime(xmas)">Display another date</BUTTON> <BUTTON ONCLICK="showDaysUntilXmas()">Display days until Xmas</BUTTON> </BODY> </HTML>
要获取有关 JScript 和 VBScript 语言元素、提供支持的脚本引擎版本、实现每个脚本引擎的宿主应用程序的综合列表,请查看下列 Web 页:
• | |
• |
好的,现在您了解了哪些函数可在哪些脚本引擎和浏览器中使用,但是您知道这对您(Web 开发人员)有什么帮助吗?我来告诉您,如果您希望使用较新版本脚本引擎中的可用功能,还想使得您的 Web 页能够在下级浏览器中显示,则可以相应检测该脚本引擎和代码的版本。
Microsoft 脚本引擎版本 3.0 及更高版本提供了下列可用来确定脚本引擎信息的函数:
• | ScriptEngine: 返回表示脚本语言的字符串。 |
• | ScriptEngineMajorVersion: 返回脚本引擎的主版本号。 |
• | ScriptEngineMinorVersion: 返回脚本引擎的次版本号。 |
• | ScriptEngineBuildVersion: 返回脚本引擎的内部版本号。 |
使用这些函数的优势在于,它们在 JScript 和 VBScript 中都可用。
Microsoft JScript 引擎版本 2.0 及更高版本提供了条件编译语句和变量,您可以利用这些语句和变量来隔离版本特定的脚本。条件编译支持是通过指定 @cc_on 语句激活的。在此语句后面,您可以与条件编译变量一起使用 @if、@elif、@else 和 @end 语句。通过将这些语句放在注释中,其他浏览器可以忽略您的条件代码。
下面的代码示例演示了如何使用这两个功能。
<HTML> <HEAD> <SCRIPT LANGUAGE="JScript"> // Example of conditional compilation /*@cc_on @*/ /*@if (@_jscript_version >= 5.5) // Call function that is only available in script engine 5.5 @else @*/ // Alert user that functionality is included in a more recent version of the script engine /*@end @*/ function init() { var ver; // Example of script engine information functions if ( "undefined" == "" + typeof ScriptEngineMajorVersion ) ver = "1"; // Function not available before version 2 else ver = ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion(); } </SCRIPT> </HEAD> <BODY ONLOAD="init()"> </BODY> </HTML>