0

私はこれを私の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);
}

ほとんどのマシンで正常に動作します。しかし、マシンの1つで、このエラーが表示されますaDs is undefined

4

2 に答える 2

1

あなたのvbsコードにいくつかのタイプミスがあります。コピー/貼り付け中だとしましょう。しかし、それらについて言及するのは良いことです。

  1. 最も明白なのは、が欠落していることですEnd Function
  2. Dim行に2つの問題があります。

1vbDateつ目は、VBScriptで定数として保持されます。変数名の前に「vb」を使用しないことをお勧めします。

次に、宣言と開始は2つの別個のプロセス/コマンドです。つまり、...

' 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

これはもちろん基本的な考え方です。渡された引数が「無効」の場合は、空の文字列などを返すことをお勧めします。

于 2013-02-28T10:30:26.697 に答える
0

エラーの行番号または表示されている正確なエラーメッセージはありますか?buildMenuBar()関数内では、aDは暗黙的に宣言されたグローバル変数として扱われる必要があります。これは、エラーではなく、何かが正しくないことを警告するだけです。

以下のようなJavaScript関数を追加すると、期待どおりに「未実装」がアラートボックスに表示されます。

function buildMenuBar() {
    aDs = FormatADateUsingLocale("1899/12/23");
    alert(aDs);
}
function FormatADateUsingLocale (p) {
     return "Not implemented";
};
于 2013-02-27T11:59:23.493 に答える