プロが教えるわが家の防犯対策術!

onChangeで関数内の処理(メニュー項目を変更する関数です)を実行したいと考えています。
JavaScriptの関数定義を記述する事が出来るのでしょうか。
また、出来る場合はその記述方法を教えてください。

HTMLでJavaScriptを利用するときと同様に、<HEAD></HEAD>に
print<<EOM;
<SCRIPT language="JavaScript">
<!--
 関数
// -->
</SCRIPT>
EOM

関数を記述し、動いてほしいところに
<SELECT NAME="「フォーム名」" onChange="「関数()」">と
メソッドを記述したらいいのでしょうか。

が、いまカスタマイズかけているものは、HTMLのヘッダーが一括表示となっています。こういう場合でも、同じように<HEAD>内に記述していいのですか?
よろしくお願いします。

A 回答 (2件)

CGI(Perl)はサーバーで動作しています。


JavaScriptは、クライアント(ブラウザ)で動作します。
なので、以下のようにPerlで出力しても、

print<<EOM;
<SCRIPT language="JavaScript">
<!--
 関数
// -->
</SCRIPT>
EOM

Perlとしては文字通り「Print」しているだけで、関数を定義しているとか動作させるといったことは行われていません。(HTMLの出力だろうと、JavaScriptの出力だろうとPerl的にはなにも意味を持たない。)
この出力結果をクライアントで受け取った際に、関数として定義されて動作させることはできます。

>いまカスタマイズかけているものは、HTMLのヘッダーが一括表示となっています。こういう場合でも、同じように<HEAD>内に記述していいのですか?

このへんのおっしゃる事がよく分かりませんが、結論として、
「PerlでJavaScriptの関数を出力してブラウザで動作させる」
ということはできます。boriさんが書いてある方法でOKです。
「JavaScriptからPerlの関数をCallする」
といったことはできません。
    • good
    • 0
この回答へのお礼

早速ありがとうございました。
「PerlでJavaScriptの関数を出力してブラウザで動作させる」
ということはできます。boriさんが書いてある方法でOKです。
のことばに自信をもってチャレンジしたら動きました。V(^0^)
ただ、
本来<HEAD></HEAD>におくべき関数をメソッドの直前においたら
動きました。

お礼日時:2001/02/19 16:18

サーバーサイドと、クライアントサイドの違いを理解して下さい。



まず、boriさんの方法では「クライアントサイドの」JavaScriptから「サーバーサイドの」Perlの関数を使用することはできません。

どうしても使用したのであれば、
JavaScriptのonChangeでlocation.href=でPerlにパラメータを渡し、
Perl側でパラメータによってJavaScriptを生成してあげると良いでしょう。

参考まで
    • good
    • 0
この回答へのお礼

質問の仕方があいまいだったようですいません。
でも、別の方法というか「クライアントサイドの」JavaScriptから「サーバーサイドの」Perlの関数を使用する方法をアドバイスしてくださってありがとうございました。勉強になりました。m(._.)m ペコッ

お礼日時:2001/02/19 16:19

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