JavaScriptからVBScriptで作った関数を呼び出すことは可能なのでしょうか?
可能なのであれば、やりかたを教えてください。

A 回答 (3件)

できますよ。


別のスクリプトタグの中で定義した関数は、普通に呼び出せますので。

<script language=vbscript>
function hoge(arg)
hoge=arg*5
end function
</script>
<script language=javascript>
document.write(hoge(6));
</script>

とか。
逆もしかりです。

この回答への補足

解答ありがとうございます。
早速、教えていただいたのを使いやってみたのですが、
『オブジェクトを指定してください』というエラーになってしまします。
こういうエラーはどういうときにでるのでしょうか?
すいません。初歩的なことで・・・。

ちなみにエラーのでるソースです。

<input type="button" name="show" value="表示" onClick="show_in()">

<SCRIPT LANGUAGE="JavaScript">
<!--
function show_in(){
 listn=document.form1.grup.selectedIndex+1;
 document.form1.grup_no.value = listn;
 document.write(Gamen(listn));
}
//-->
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Public function Gamen(listn)

//処理//

End function
//-->
</SCRIPT>

補足日時:2002/02/18 20:43
    • good
    • 0

通常ASPのデフォルト言語はVBScriptとなっていますが、サーバーによってはJAVAScriptを使ってるところもありますよ。


それに、ASPだったらまた、別の話になりますよ。
最初からASPって言ってくれればよかったのに。

<script language=vbscript>

と書いたら、ASPじゃなくてクライアントサイドスクリプトになってしまうのでは。

>私の書いているソースでは <script language=vbscript>を定義してなくて、定義していない関数を呼び出したいのです。

デフォルトがASPと規定されているところではいいですが、そうでないところもあるので、VBScriptと指定しないのは、多少リスクがあると思うのですが。

あと、呼び出しができないことで考えられる原因は、Scriptタグを使ったことで、クライアントサイドスクリプトがサーバーサイドスクリプトを呼び出そうとしたり、その逆をしていることだと思います。
    • good
    • 1
この回答へのお礼

説明不足で申し訳なかったです。
じゃ、クライアントサイドスクリプトからサーバースクリプトへの呼び出しが
できなかったんですね。
勉強不足ですいません。
でも、それがわかっただけでもよかったです。
ありがとうございましたm(__)m

お礼日時:2002/02/19 21:07

これ以前がないと分かりませんね。


form1はちゃんとformタグのnameになってますか?
フォームの中にgrup_no.valueというnameのものはあるのでしょうか?
そのへんが確認どころです。

この回答への補足

言われたとおりにソースを書いてみると、確かに動作しました。
でもですね、すいません。言い忘れたことがひとつ・・・。
ASPに <script language=vbscript> と定義しない場合は、
<vbscript>ではないのですか???
私は <script language=vbscript> と定義しなくても、
<vbscript>だと思っていました。それは、間違いですか???
私の書いているソースでは <script language=vbscript> を
定義してなくて、定義していない関数を呼び出したいのです。
それって、可能なのでしょうか。
わかりにくい質問ですいません。
わかる範囲で結構ですので、もし、よろしければご解答お願いしますm(_)m 

補足日時:2002/02/19 18:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QCSSとJavascript(jQuery)の使い分け方

こんにちは。
CSS、Javascript(jQuery含む)を覚えたての初心者です。

CSSファイルはHTMLの装飾、JavaScriptはHTMLで作ったページに「動き」をもった内容を表示できます。
しかし、Javascriptファイルでは、jQueryファイルと一緒に使い、例えば
$("function(){});").css("color","red"); などを使うことで
CSSファイルと同じように、文字を大きくしたり背景に色をつけたりすることができます。

これでは極論を言ってしまえば、$("function(){});").css("color","red");  をつかった.jsファイルを作りこむことでCSSが不要になってしまいます。しかし、CSSはどのウェブページでも必ず使われているものです。

JavaScript(とjQuery)を使ってホームページを作っている方は、
CSSとJavaScript(とjQuery)との使い分けを どのようにしているのでしょうか?

宜しくお願い致しますm(_ _)m

こんにちは。
CSS、Javascript(jQuery含む)を覚えたての初心者です。

CSSファイルはHTMLの装飾、JavaScriptはHTMLで作ったページに「動き」をもった内容を表示できます。
しかし、Javascriptファイルでは、jQueryファイルと一緒に使い、例えば
$("function(){});").css("color","red"); などを使うことで
CSSファイルと同じように、文字を大きくしたり背景に色をつけたりすることができます。

これでは極論を言ってしまえば、$("function(){});").css("color","red");  をつかった.jsファイルを作り...続きを読む

Aベストアンサー

CSS と JavaScript の使い分けはあなた自身が答えを書いてるじゃないですか、
> CSSファイルはHTMLの装飾、JavaScriptはHTMLで作ったページに「動き」をもった内容を表示
と。

確かに JavaScript で CSS を操作することは可能です。しかしそれは JavaScript での何らかの処理の結果をユーザーに通知するためのもので、処理によって変化しない箇所や初期状態の装飾を設定するものではありません(ただし初期状態としての要素の不可視化は例外:JavaScript を切った状態では不可視な要素へのアクセスができなくなるため)。

また、実際の表示の際 JavaScript で装飾を行うと、まずブラウザのデフォルトの装飾がページに施され、そののちに JavaScript による装飾変更が行われるため二度手間になります。それに対して CSS による装飾を行うと、ブラウザのデフォルトの装飾方法を CSS が修正してそれをページに適用するだけで済みます。

QJavascriptでプルダウンメニューを作りましたが関数化できません

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
function foldmenu(i){
var i;
for(j=1;j<=5;j++){
if(i==j)
$('#sc'+j).toggle('normal');
else
$('#sc'+j).hide();
}
$(function(i){
$('#c'+i).click(function(){
for(j=1;j<=5;j++){
if(i==j)
$('#sc'+j).toggle('normal');
else
$('#sc'+j).hide();
}
});
});
}
</script>

<div id="c1" onClick="foldmenu('1')">1</div>
<ul id="sc1">
<li><a href="#">入力画面1-1</a></li>
<li><a href="#">入力画面1-1</a></li>
</ul>
<div id="c2" onClick="foldmenu('2')">2</div>
<ul id="sc2">
<li><a href="#">入力画面2-1</a></li>
<li><a href="#">入力画面2-2</a></li>
</ul>
<div id="c3" onClick="foldmenu('3')">3</div>
<ul id="sc3">
<li><a href="#">入力画面3-1</a></li>
<li><a href="#">入力画面3-2</a></li>
</ul>
<div id="c4" onClick="foldmenu('4')">4</div>
<ul id="sc4">
<li><a href="#">入力画面4-1</a></li>
<li><a href="#">入力画面4-2</a></li>
</ul>
<div id="c5" onClick="foldmenu('5')">5</div>
<ul id="sc5">
<li><a href="#">入力画面5-1</a></li>
<li><a href="#">入力画面5-2</a></li>
</ul>
と関数化しましたがうまく動きません。
初期状態では1の部分が開く。
それ以降はクリックした部分が開き開いていた部分は閉じるという感じにしたいです。
縦長のプルダウンメニューです。
たてに1から5が並んでいて、1をクリックすると1と2の間に1の子カテゴリーが表示されます。
困っています。教えてください。

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
function foldmenu(i){
var i;
for(j=1;j<=5;j++){
if(i==j)
$('#sc'+j).toggle('normal');
else
$('#sc'+j).hide();
}
$(function(i){
$('#c'+i).click(function(){
for(j=1;j<=5;j++){
if(i==j)
$('#sc'+j).toggle('normal');
else
$('#sc'+j).hide();
}
});
});
}
</script>

<div id="c1" onCli...続きを読む

Aベストアンサー

#1、#2ですでに回答はでていますが・・・

id利用で操作していると、onClick="foldmenu('1')"、onClick="foldmenu('2')"…みたいなことをしなくてはならなくなるし、項目の数を増減するだけでもスクリプトを修正しなければならなくなってしまいます。
HTMLの構造の情報を元に処理するように記述しておけば、HTMLソースはその構造を変えない限り自由に編集可能になるので便利です。

例えば、ご提示のソースからidとonclickを全てはずして、その代わりに全体をラップするid付きのdivを追加すれば、以下のようにできます。
(実はjqueryはよく知らないので、少々いい加減です)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head><title>test</title>
<style type="text/css">
#wrap ul {list-style:none; }
</style>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
<!--
$(function() {
$('#wrap ul').hide();
$('#wrap ul:first').show();
$('#wrap div').click(function() {
$(this).next('ul').toggle('normal').siblings('ul').hide();
});
});
//-->
</script>
</head>
<body>
<div id="wrap">
<div>1</div>
<ul>
<li><a href="#">入力画面1-1</a></li>
<li><a href="#">入力画面1-1</a></li>
</ul>
<div>2</div>
<ul>
<li><a href="#">入力画面2-1</a></li>
<li><a href="#">入力画面2-2</a></li>
</ul>
<div>3</div>
<ul>
<li><a href="#">入力画面3-1</a></li>
<li><a href="#">入力画面3-2</a></li>
</ul>
<div>4</div>
<ul>
<li><a href="#">入力画面4-1</a></li>
<li><a href="#">入力画面4-2</a></li>
</ul>
<div>5</div>
<ul>
<li><a href="#">入力画面5-1</a></li>
<li><a href="#">入力画面5-2</a></li>
</ul>
</div>
</body>
</html>

-----------------------------------------------
ご提示の構成はメニューが親子だけで孫やひ孫がありませんが、そのような階層に対応することを考慮するなら、全体の構成を同じにして
<ul>
  <li>
    <ul>
      <li> </li>
      <li> </li>
    </ul>
  </li>
  <li> </li>
</ul>
のように、同じ構成にしておいたほうが便利です。
階層があるので、閉じる(=非表示にする)ときに子孫まで全部閉じておくか、そのままにしておいて必要なものだけ閉じるかで、次に開いたときの見え方がかわります。
以下の例は後者の例。(次に開いた時に、閉じた時の状態で開く)
(CSSのtext-decorationは「>」を利用すると簡単に書けるけれど、効かないブラウザがあるみたいなので、ローテクで…)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head><title>test</title>
<style type="text/css">
#navi { list-style:none; padding:0; margin:0; }
#navi li a{ text-decoration:none; }
#navi ul li a{ text-decoration:underline; }
#navi ul { list-style:none; }
</style>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
<!--
$(function() {
$('#navi ul').hide();
$('#navi > li:first > ul').show();
//子供にulを持つliのa要素にイベントを設定
$('#navi li:has(ul)').children('a').click( function() {
$(this).parent().children('ul').toggle('normal');
$(this).parent().siblings().children('ul').hide();
});
});
//-->
</script>
</head>
<body>
<ul id="navi">
<li><a href="#">1</a>
<ul>
<li><a href="#">入力画面1-1</a>
<ul>
<li><a href="#">入力画面1-1-1</a></li>
<li><a href="#">入力画面1-1-2</a></li>
</ul>
</li>
<li><a href="#">入力画面1-2</a></li>
</ul></li>
<li><a href="#">2</a>
<ul>
<li><a href="#">入力画面2-1</a>
<ul>
<li><a href="#">入力画面2-1-1</a>
<ul>
<li><a href="#">入力画面2-1-1-1</a></li>
<li><a href="#">入力画面2-1-1-2</a></li>
</ul>
</li>
<li><a href="#">入力画面2-1-2</a></li>
</ul>
</li>
<li><a href="#">入力画面2-2</a></li>
</ul></li>
<li><a href="#">3</a>
<ul>
<li><a href="#">入力画面3-1</a></li>
<li><a href="#">入力画面3-2</a></li>
</ul></li>
</ul>
</body>
</html>

#1、#2ですでに回答はでていますが・・・

id利用で操作していると、onClick="foldmenu('1')"、onClick="foldmenu('2')"…みたいなことをしなくてはならなくなるし、項目の数を増減するだけでもスクリプトを修正しなければならなくなってしまいます。
HTMLの構造の情報を元に処理するように記述しておけば、HTMLソースはその構造を変えない限り自由に編集可能になるので便利です。

例えば、ご提示のソースからidとonclickを全てはずして、その代わりに全体をラップするid付きのdivを追加すれば、以下のように...続きを読む

QCSSやJavaScriptのバージョン指定

HTMLを書くときにCSSやJavaScriptのバージョン指定は必要なのでしょうか。
各ブラウザのバージョンによって対応するCSS・JavaScriptのバージョンが決まっていると思うのですが、例えば、CSS3やJavaScript2がでてきたときに、バージョン指定していないWebページで表示が壊れる等ないのでしょうか。

現在CSS2.1で書かれたページもいつかは、CSS2.1対応のブラウザがなくなり見れなくなります。
ただ、近々CSS3がでたときにバージョン指定していないため、ブラウザ側でCSS3で表示しようとし、見れなくなる等あるのでしょうか。

ご回答いただければ幸いです。

Aベストアンサー

今でもCSSやJavaScriptのバージョン指定はしてませんよね。
特に指定しなくてもブラウザがそれらに対応してればそのように表示するし、
対応してなければ意図した表示にならない可能性は高いでしょう。
例えそれが新しいCSS3だからといってもバージョンこそ違えどCSSに変わりはないので同じです。
逆にブラウザの方のバージョン指定が必要になってくるかも ^^;

QJavaScriptで自作関数を作り、別の場所で実行すると動かない現象について

alertで指定したidを表示させるというプログラムを作成しました。

<script type="text/javascript">
var id = '2222';
test(id);
function test(id) {
alert(id);
}
</script>
この場合、ポップアップした画面に 2222 と表示されます。


この関数を別の場所で使おうとして、下記のように書き換えると何も反応しなくなります。

<script type="text/javascript">
var id = '2222';
test(id);
</script>

<script type="text/javascript">
function test(id) {
alert(id);
}
</script>

どのように書き換えたらうまく動くようになるのか教えていただければと思います。
よろしくお願い致します。

alertで指定したidを表示させるというプログラムを作成しました。

<script type="text/javascript">
var id = '2222';
test(id);
function test(id) {
alert(id);
}
</script>
この場合、ポップアップした画面に 2222 と表示されます。


この関数を別の場所で使おうとして、下記のように書き換えると何も反応しなくなります。

<script type="text/javascript">
var id = '2222';
test(id);
</script>

<script type="text/javascript">
function test...続きを読む

Aベストアンサー

スクリプトタグを一度閉じてしまうと、そこまでの範囲で評価しようとするため
その時点で定義されていないtest()関数の参照ができないということでは?
関数の宣言は実行文の前でやるか

window.onloadを利用して、一度全文読み込んでから実行してください
<script type="text/javascript">
window.onload=function(){
var id = '2222';
test(id);
}
</script>

<script type="text/javascript">
function test(id) {
alert(id);
}
</script>

Qcssにjavascriptを入れる?呼び出す??

技量が乏しいので見当違いな質問でしたらすいません。

今ホームページにjavascriptによるログ解析を行うためhtmlファイルにタグを挿入しているのですが、すべての該当ページに挿入するのに苦労しています。
これをcssを使う事でcssだけ変更すればすべてのファイルにjavascriptを追加するような事はできませんでしょうか。
cssの記述方法についてご教授頂ければありがたいです。


cssやjavascriptそれぞれ1つとっても私には難しく・・・
よろしくお願いいたします。

Aベストアンサー

cssでスクリプトの読みこみはできませんが、
cssをうめこむ手順に近い形でjavascriptの
うめこみをすればよいのでは?

<script type="text/javascript" src="hoge.js"></script>

とし、hoge.jsを書きかえれば全てのページの
スクリプトが変わります。

Q【Javascript】関数へわたす

<script>
function search(str) {
var word = str;
var w = document.forms.search.in.value;
if(word=="SAO"){
document.forms.search.in.value = w + word;
}
}
</script>
<button onclick="SAO">ソードアート・オンライン</button>
<form id="search">
<input id="in">
中略...

ボタンをクリックするとテキストボックスに追記される仕組みを作りたいのですが...
うまく動作しません...
何がダメなのですか?

Aベストアンサー

<form name="form">
<textarea rows="25" cols="50" name="content">ソードアートオンライン</textarea>
<p><input type="button" name="insert" value="追加"></p>
</form>
<script>
var word = "string"; //追加される文字列
var button = document.form.insert; //ボタン要素(name属性で指定)
//ボタンが押されるたびに実行される関数(投稿者様のSAO関数にあたる)
button.onclick = function() {
document.form.content.innerHTML += word; //テキストエリア要素に任意の値を追加
}
</script>

こんなかんじではないでしょうか。(^^)

Q時間帯によって背景を切り替えるJavascriptとCSS

時間帯によって背景を切り替えるJavascriptとCSSを作りたいのですが以下の書き方で良いのでしょうか?切り替わるには切り替わるのですが、時間の指定がうまくいってないようです。。

また下の3行はJavascriptをOFFにしているときはこのCSSという意味で良いですか?

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function getCSS()
{
datetoday = new Date();
timenow=datetoday.getTime();
datetoday.setTime(timenow);
thehour = datetoday.getHours();

if (thehour > 20)
display = "includes/tree_twilight.css";
else if (thehour > 17)
display = "includes/tree_sunset.css";
else if (thehour > 14)
display = "includes/tree_afternoon.css";
else if (thehour > 11)
display = "includes/tree_noon.css";
else if (thehour > 7)
display = "includes/tree_morning.css";
else if (thehour > 4)
display = "includes/tree_sunrise.css";
else if (thehour > 1)
display = "includes/tree_twilight.css";
else
display = "includes/tree_sunset.css";

var css = '<';
css+='link rel="stylesheet" href=' + display + ' \/';
css+='>';

document.write(css);
// End -->
}
</script>

<script language="javascript">getCSS();</script>

<noscript>
<link rel="stylesheet" href="includes/tree_sunset.css" type="text/css"/>
</noscript>


宜しくお願いします。。

時間帯によって背景を切り替えるJavascriptとCSSを作りたいのですが以下の書き方で良いのでしょうか?切り替わるには切り替わるのですが、時間の指定がうまくいってないようです。。

また下の3行はJavascriptをOFFにしているときはこのCSSという意味で良いですか?

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function getCSS()
{
datetoday = new Date();
timenow=datetoday.getTime();
datetoday.setTime(timenow);
thehour = datetoday.getHours();

if (thehour > 20)
display = "includes/t...続きを読む

Aベストアンサー

★『>』と『>=』演算子の使い方は、次のようになります。

サンプル1:
if ( thehour > 17 ){
 18~23時
}
else if ( thehour > 11 ){
 12~17時
}
else if ( thehour > 5 ){
 6~11時
}
else{
 0~5時
}

サンプル2:
if ( thehour >= 18 ){
 18~23時
}
else if ( thehour >= 12 ){
 12~17時
}
else if ( thehour >= 6 ){
 6~11時
}
else{
 0~5時
}

解説:
・『>』演算子よりも『>=』演算子の方が分かりやすいというのは if の
 ブロック内の最初が『比較時間~』という解釈が出来るからです。
 どちらでも処理的には同じですので最終的に『お好み』ですよ。
 これで分かりましたか?
・以上。→私は『サンプル2』の方が分かりやすいと思った。でアドバイスしたの。

QPHPのstrip_tagsに相当するJavascriptの関数かライブラリがあれば教えてください。

PHPのstrip_tags
http://manual.xwd.jp/function.strip-tags.html
と同じような処理をしてくれるものがあったら教えてください。
また無い場合は、これに相当する処理をどうやってかけばよいか教えてください。
宜しくお願いします。

Aベストアンサー

Perlなら正規表現でタグを取り除けます。
JavaScriptでも正規表現があったと思いますので、それで実現できるかと思います。

Q【HTML&JavaScript】JavaScriptでのCSSの操作

【HTML&JavaScript】JavaScriptでのCSSの操作
みなさんはじめまして、kimama8と申します。
今回は、JavaScriptによるCSSの操作について聞きたいことがありましたので、
質問させていただきます。

div要素のCSSプロパティの一つ、visibilityプロパティをJavaScriptから操作するには、
どのようにすればよいのでしょうか?
「CSS JavaScript 操作」などと検索にかけても、自分に合う情報が得られなかったので
ここで質問させていただきます。
忙しいとは思いますが、よろしくお願いします。

Aベストアンサー

「JavaScript CSS visibility」で検索すると色々出てきましたよ。

http://javascript123.seesaa.net/article/103571862.html
これが判りやすいかな。

QJavaScript と VBScript を同時に使う

meta内に VBScript, JavaScript の順にスクリプトを配置しているのですが,body内から JavaScript の関数を引数つきで呼び出そうとすると,「Sub プロシージャを呼び出すときに,かっこを使うことはできません。」と表示されエラーになります。

どうすればいいでしょうか。よろしくお願いします。

Aベストアンサー

前の回答ではダメだったのでしょうか?
実際にどのように書いているか補足していただけますか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング