vbscript无法进入客户端计算机

时间:2013-02-27 10:04:12

标签: asp.net vbscript

我的html文件中有这个:

<script type="text/vbscript">
    Function FormatADateUsingLocale(aDate)
        Dim vbDate vbDate = DateValue (aDate)
        FormatADateUsingLocale = FormatDateTime(vbDate, 2)
</script>

这是从相同的HTML文件JavaScript函数调用的:

function buildMenuBar(){ 
    aDs = FormatADateUsingLocale("1899/12/23"); 
    alert(aDs);
}

它在大多数机器上都能正常工作。但是在其中一台机器上我看到了这个错误:aDs is undefined

2 个答案:

答案 0 :(得分:1)

我在你的vbs代码中看到了一些拼写错误,让我们说它们在复制/粘贴过程中,但最好提一下。

  1. 最明显的是你遗失了End Function
  2. Dim行,我看到了2个问题。
  3. 第一个vbDate在VBScript中保持不变。不要在变量名前面使用“vb”是个好主意。

    其次,声明和启动是两个独立的过程/命令,这意味着......

    ' next is incorrect
    Dim x = 0
    
    ' next is correct
    Dim x
    x = 0
    
    ' next is correct too, but not recommendable
    Dim x : x = 0
    

    好的,该行中可能缺少冒号(:)也是一个错字。

    您可以直接将字符串文本值传递给FormatDateTime函数,而无需显式转换。更重要的是检查您的函数的传递参数是否可以使用vbDate函数转换为IsDate,否则DateValue也会因“类型不匹配”错误而失败。因此,以完整函数结束时,如果参数无法转换为有效的vbDate类型,也应预测返回的内容。

    ' shortly, something like this
    Function FormatADateUsingLocale(ByVal aDate)
        If Not IsDate(aDate) Then aDate = "9999/12/31"
        FormatADateUsingLocale = FormatDateTime(aDate, 2)
    End Function
    

    这是基本的想法,当然,如果传递的参数是“无效的”,你可能希望返回空字符串或其他东西。

答案 1 :(得分:0)

您是否有错误的行号或您收到的确切错误消息?在buildMenuBar()函数中,aDs应该被视为隐式声明的全局变量。这应该只是警告某些事情不是正确的,而不是错误。

如果我添加如下所示的JavaScript函数,那么我会按预期在警告框中显示“未实现”。

function buildMenuBar() {
    aDs = FormatADateUsingLocale("1899/12/23");
    alert(aDs);
}
function FormatADateUsingLocale (p) {
     return "Not implemented";
};