JavaScriptからVBscriptの関数をcallするには

解決


JavaScript初心者  2003-02-05 19:14:34  No: 77040  IP: [192.*.*.*]

はじめまして。今回はじめてHTML、JavaScript、VBscriptを交えたシステム開発をしています。それで、基礎的なこととは思うのですが、JavaScriptからVBscriptの関数を呼び出す場合の方法を教えてください。よろしくお願いします。

編集 削除
魔界の仮面弁士  2003-02-06 00:01:13  No: 77041  IP: [192.*.*.*]

> JavaScriptからVBscriptの関数を呼び出す場合の方法を教えてください。

各Windows Scriptは、使用言語を明示しておけば相互に呼び出せますよ。



************ Internet Explorerでのクライアントスクリプトの例 ************
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/JScript">
<title>スクリプト言語の混在</title>
</head>
<body>

<p><input type="button" id="txt1" value="VBScriptから、VBScriptのMsgBox関数を呼び出す"></p>
<p><input type="button" id="txt2" value="JScriptから、VBScriptのMsgBox関数を呼び出す"></p>
<p><input type="button" id="txt3" value="JScriptから、DHTMLのexecScriptメソッドを使って、VBScriptのMsgBox関数を呼び出す"></p>
<p><input type="button" id="txt4" value="VBScriptから、DHTMLのexecScriptメソッドを使って、JScriptのMath.PIプロパティの値を得る"></p>

<script type="text/vbscript"><!--
Function txt1_onclick()
    Call window.alert( MsgBox("MsgBox関数", vbYesNoCancel Or vbQuestion) )
End Function
--></script>

<script type="text/JScript"><!--
function txt2::onclick()
{
  txt1_onclick();
}
--></script>

<script for="txt3" event="onclick" type="text/JScript"><!--
  window.execScript('MsgBox "MsgBox関数", vbInformation', "VBScript");
--></script>

<script for="txt4" event="onclick" type="text/vbscript"><!--
  Call window.execScript("window.alert(Math.PI)", "JScript")
--></script>

</body>
</html>
****************************************************




************ Active Server Pagesでの例 ************
<%@Language="VBScript"%><%Option Explicit%>
<html>
<head>
<title>Sample</title>
<script runat="server" language="jscript">
function getUTCString()
{
  var d = new Date()
  return d.toUTCString();
}
</script>
<%
Dim sVBS, sJS
sVBS = FormatDateTime(Now, vbGeneralDate)
sJS = getUTCString()
%>
</head>
<body>
<p><%=sVBS%></p>
<p><%=sJS %></p>
</body>
</html>
****************************************************


************ HTMLビヘイビアの例 ************
<?xml version="1.0" encoding="Shift_JIS"?>
<PUBLIC:COMPONENT xmlns:PUBLIC="http://www.w3.org/TR/NOTE-HTMLComponents">
<PUBLIC:IMPLEMENTS TYPE="Behavior" id="HTC">
  <PUBLIC:ATTACH EVENT="ondetach" ONEVENT="cleanup()" />
</PUBLIC:IMPLEMENTS>
<SCRIPT LANGUAGE="VBSCRIPT">'<![CDATA[
Function getFormatNumberVB(Value)
  getFormatNumberVB = FormatNumber(Value, 0)
End Function
']]>
</SCRIPT>
<SCRIPT LANGUAGE="JSCRIPT">//<![CDATA[
if(element.tagName == 'INPUT' && element.type == 'text')
{
  element.attachEvent('onfocus', onFocus);
  element.attachEvent('onchange', onChange);
}
function cleanup()
{
  element.detachEvent('onfocus', onFocus);
  element.detachEvent('onchange', onChange);
}
function onFocus()
{
  element.select();
}
function onChange()
{
  var n = parseInt(element.value.replace(/./,''));
  if(!isNaN(n)) element.value = getFormatNumberVB(n);
}
//]]>
</SCRIPT>
</PUBLIC:COMPONENT>
****************************************************

編集 削除
JavaScript初心者  2003-02-06 08:49:40  No: 77042  IP: [192.*.*.*]

魔界の仮面弁士さん、早速のレスありがとうございました。記述していただいたコードが大変参考になりました。どうもありがとうございました。

編集 削除