- PR -

JavaScript vs VBScript

投稿者投稿内容
Ciao
会議室デビュー日: 2003/02/13
投稿数: 3
投稿日時: 2004-09-20 22:53
今では、サーバサイドもクライアントサイドもjavascriptを使っています。
一時はvbscriptも使いましたが、エラーのハンドリングで行き詰ってしまいました。
OnErrorGoto文が使えればなぁ…。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2004-09-21 15:23
ども、ぼのぼのです。
2つ目のえんぞ@見習さんのご意見を見たときは、一瞬「このスレ立てたのは失敗だったか」と不安になりましたが(笑)、その後皆さんの色々なご意見を聞けて、大変参考になりました。
全体的な印象として、「Cを母国語にする人たちがみんなが使えるように作ったjavascript」と「世の中に以外と多く存在する(?)VBしか知らないプログラマのためにMicroSoftが作ったvbscript」の差が顕著に現れたような気がします。
まぁかなり荒っぽい表現だし、まだまだプログラマとしてはひよっ子な私の浅薄な知識をベースに感じたことですので、誤ってる部分もあるかもしれませんが。
しかし、今更vbscriptを擁護する気は更々ないのですが、「しっかりしたものを作るのは苦手だけど道具として使い勝手の良いものを作るのは得意なMicroSoft」が作っただけあるな、と思う点も多少はありまして、一番それを感じたのはvbscriptのCDate関数を初めて使ったとき。
銀行のシステムとかだと、画面は和暦DBは西暦ってパターンが結構多いんですけど、この関数を使うとたった数行のコードでかなりの入力形式をサポートしてくれるのです。
----
function convertDate(s)
 dim d
 if IsDate(s) then
  d = CDate(s)
  convertDate = Year(d) & "/" & Month(d) & "/" & Day(d)
 else
  convertDate = ""
 end if
end function
----
こんだけで、"1994/1/1"とか"Sep-5-2003"だけでなく、"平成6年10月12日"とか"H12/5/6"とかまでちゃんと認識して変換してくれます。勿論IE限定だし、古いバージョンのIEでの動作確認もしてないんですけど、便利だなぁと思いました。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-09-21 15:58
どさくさにまぎれて質問なのですが

JavaScriptで
<INPUT type=text onKeyDown="return CheckKey()">
のようにファンクションを呼ぶ処理をVBScriptで書くことは可能なのでしょうか?

VBScriptにはreturnがないのですが、
かといってreturnを書かないとCheckKey()の戻り値が評価されません。

ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2004-09-21 21:36
引用:

どさくさにまぎれて質問なのですがJavaScriptで
<INPUT type=text onKeyDown="return CheckKey()">
のようにファンクションを呼ぶ処理をVBScriptで書くことは可能なのでしょうか?


試してみたら駄目でした。HTMLのタグに呼出し処理を書く方式だと無理っぽいですね。戻り値を評価しなくて良い場合はいけるんですけども。ただ、vbscriptにはもう一つの書き方があって、関数名を"id_イベント名"にすると、HTMLのタグの方に何も書かなくても関連付けられるのです。で、こっちの方法を使うとうまくいくみたいです。以下は送信制御の簡単なサンプルです。

コード:

<html>
<head>
<title>test</title>
<script language="vbscript">
<!--
function func()
    msgbox "送信されました。"
end function

function chkTxt()
    if Len(form1.tx1.value) = 0 then
        msgbox "何か入力してください。"
        chkTxt = false
    else
        chkTxt = true
    end if
end function

function form1_onsubmit
    form1_onsubmit = chkTxt()
end function
-->
</script>
</head>
<body>
<form id=form1 name=form1 action="vbscript:func()">
<input type=text id=tx1 name=tx1><input type=submit value="送信">
</form>
</body>
</html>

スキルアップ/キャリアアップ(JOB@IT)