现在的位置: 首页 > 综合 > 正文

脚本语言间的函数调用

2011年09月30日 ⁄ 综合 ⁄ 共 2339字 ⁄ 字号 评论关闭
您不能在 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>

抱歉!评论已关闭.