- ベストアンサー
ASPのプログラミングについて
<% %>で囲むとうまく実行されるのに、<!-- -->で囲むと止まってしまうのですが、この違いはなんですか?どう使い分ければいいのでしょうか? それとOnClickで2つのFuctionを呼び出したりっていう事はできないのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
<% %>で囲まれる部分は、サーバーの側で処理されます。 <!-- -->の部分は、ブラウザ(クライアント) 側でHTMLでのコメントとして処理されます。 (すでに説明されています) サーバー立てて、ASPを動かしているんですよね? ちょっと心配になってきました。 ASPで使用する言語を指定する場合には、 <%@ LANGUAGE=ScriptingLanguage %> の様に書きます。通常(指定無し)だとVBScriptが使用されます。 <script></script>で動かすスクリプトは、ブラウザで処理されます。 <% %>で囲まれた部分をサーバーに処理させる場合には、<!-- -->で囲む必要はありません。
その他の回答 (3)
- chiaki_primary
- ベストアンサー率46% (7/15)
んー ぜんぜんだめっぽいですね。 乗りかかった船なのでわかるまで説明を。 <!-- -->は、scriptの中にある時意外はブラウザが解釈してコメントとみなす部分です。scriptの中にある場合は中身をコードとして解釈します。 <script></script>はブラウザが実行するコードです。下位互換性のために普通、中身はすべて<!-- -->で括られています。 <% %>はサーバーが実行するコードです。 質問文の「<!-- -->で囲むと止まる」というのは、 <Script> <!-- ここにコード --> </Script> で囲むと止まるという意味だと思います。 これは上記のような理由から、 「Scriptで囲むと止まる」と質問すべきです。 <% %>にOnClickを書いた場合、一度サーバーが呼ばれます。この場合、言語は普通VBやVB.NETやVC.NETなどを使います。 <script></script>に書いた場合、ブラウザが処理をしますのでサーバーは呼ばれません。 この場合言語はVBScriptやJavaScriptなどを普通使います。 VBScriptとVBは似ているので勘違いしますが、違う言語です。scriptの中にVBのコードを書いても動きません。 (VBScriptとしても正しいコードでしたら動きます) 逆に、<% %>の中にVBScriptのコードを書いても動きません。VBのコードとして正しいコードでしたら動きます。 OnClick関数で二つの関数を呼び出すのはVBScriptでもVBでも当然できます。 OnClick関数を二つ書くのは・・・どうだったか忘れました。OnClick関数の中で二つ関数を呼び出せば言いだけなので。 ASPの基礎をもう一度きちんと勉強したほうがいいですね。 MSDNの最初のほう、しっかりと読んでください。 で、<!-- -->の件は >こっちで括った方がいいと言うことですか? scriptの中身は<!-- -->で括ったほうがよいとW3Cが言っているので従いましょう。
- chiaki_primary
- ベストアンサー率46% (7/15)
補足の回答です。 scriptタグの中では<!-- -->は特別な働きをします。 これは古いブラウザに対応するためです。 scriptタグに対応していないブラウザですと、 scriptが解釈できないので、 規定の動作、つまり普通に表示してしまいます。 それを防ぐために<!-- -->で括ります。 scriptに対応しているブラウザは scriptの内部で<!-- -->があっても、 コメントとして扱わずにscriptの中身だと解釈してくれます。 というので納得できるでしょうか?
補足
では<!-- -->で括った方が古いブラウザにも対応できるから、こっちで括った方がいいと言うことですか?
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
<!-- -->ってコメント(この範囲が無視される)書き方です。 2つの関数を呼び出すような関数を書けばいいのでは
補足
では、以下の書き方ではいけないのでしょうか? これは実際に動くのですが・・。ASPとは違うのですか? <Script language="VBScript"> <!-- Sub err() Set TheForm = Document.fo if TheForm.entry.Value="" then MsgBox "error! textbox is empty!" end if end sub Sub hist() history.back() end Sub sub gotoURL(url) parent.location=url end sub --> </SCRIPT> <html> <head><title>・・・・・
お礼
すいません。ありがとうございます。新入社員でASP初体験な者で・・・。
補足
すいません。 <Script> <% ココにコード %> だと止まるのですが・・・。逆に <!-- -->だと動きます。