脚本语言间的函数调用

您不能在 Microsoft JScript® 代码中直接调用 Microsoft Visual Basic® Script Edition (VBScript) 函数。这是因为每种语言使用的数据类型都是有差别的:

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 页:

Visual Basic Scripting Edition Version Information

JScript Version Information

好的,现在您了解了哪些函数可在哪些脚本引擎和浏览器中使用,但是您知道这对您(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>

你可能感兴趣的:(脚本)