質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

ASP

ASP(Active Server Pages) あるいはClassic ASP (ASP Classic)は、マイクロソフト社開発した動的なウェブページ製作に利用可能なサーバー側のスプリクトエンジンです。

Q&A

解決済

4回答

27393閲覧

asp内に記述したVBScriptはサーバー側で動作するのでしょうか?

javabigineer

総合スコア87

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

ASP

ASP(Active Server Pages) あるいはClassic ASP (ASP Classic)は、マイクロソフト社開発した動的なウェブページ製作に利用可能なサーバー側のスプリクトエンジンです。

0グッド

1クリップ

投稿2016/09/13 08:42

asp内に記述したVBScriptはサーバー側で動作するのでしょうか?
本来はVBScriptはクライアント側で動作する(認識合ってますか?)と思いますが、
下記のコードでレジストリを確認するとサーバーのレジストリを確認していました。
ソースに誤りがあればご指摘願います。

Dim objShell, NetFramework45Install, NetFramework45Version, blnNetFramework45 Set objShell = CreateObject("WScript.Shell") blnNetFramework45 = False On Error Resume Next Err.Clear 'NetFramework45Install = objShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB\MySQL Connector/ODBC 3.51\Version") 'NetFramework45Install = objShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-x64-9.3\Shortcuts") 'NetFramework45Version = objShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Version") 'NetFramework45Install = objShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Install") NetFramework45Version = objShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Version") response.write "<br>" response.write "Err.Number: " & Err.Number response.write "<br>" 'response.write "NetFramework45Install: " & NetFramework45Install response.write "NetFramework45Version: " & NetFramework45Version response.write "<br>"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

まだベストアンサーが出ていないようなので参戦。

<% と %> で囲まれた部分がサーバー側で動作して、

<script> と </script> で囲まれた部分や onclick属性などの値がクライアント側で動作します。

例えば以下のような aspファイルがあったとします。

ASP

1<%@ LANGUAGE = "VBScript" CODEPAGE = 932 ENABLESESSIONSTATE = True TRANSACTION = Supported %> 2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 3<html lang='ja'> 4<head> 5<meta http-equiv='X-UA-Compatible' content='IE=8'> 6<script language='VBScript'></script> 7<meta http-equiv='Content-Type' content='text/html; charset=Shift_JIS'> 8 9<% 10 'ここはサーバー側で動作する 11 Dim text01 12 Dim text02 13 text01 = "abc" 14 text02 = "xyz" 15%> 16 17<script type="text/VBScript"> 18 'ここはクライアント側で動作する 19 Private Function Test01() 20 document.all.item("TextBox01").value = "CDE" 21 End Function 22 Private Function Test02() 23 document.all.item("TextBox02").value = "UVW" 24 End Function 25</script> 26 27</head> 28<body> 29 <input type='text' name='TextBox01' size='10' value='<% = text01 %>'> 30<% 31 'ここはサーバー側で動作するし、上の「<% = ~ %>」もサーバー側で動作してる。 32 Response.Write "<input type='text' name='TextBox02' size='10' value='" & text02 & "'>" & vbCrLf 33%> 34 <!-- 以下の onclick属性の中はクライアント側で動作する --> 35 <button type='button' onclick='Test01()'>Test01</button> 36 <button type='button' onclick='Test02()'>Test02</button> 37</body> 38</html>

このページがリクエストされたときにサーバー側では <% %> の中が VBScript として動作して、<% %> の外側の部分はただの文字列としてそのままクライアント側に送られます。

よってクライアント側に送られるページのソースは以下のようになります。

ASP

1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<html lang='ja'> 3<head> 4<meta http-equiv='X-UA-Compatible' content='IE=8'> 5<script language='VBScript'></script> 6<meta http-equiv='Content-Type' content='text/html; charset=Shift_JIS'> 7 8<script type="text/VBScript"> 9 'ここはクライアント側で動作する 10 Private Function Test01() 11 document.all.item("TextBox01").value = "CDE" 12 End Function 13 Private Function Test02() 14 document.all.item("TextBox02").value = "UVW" 15 End Function 16</script> 17 18</head> 19<body> 20 <input type='text' name='TextBox01' size='10' value='abc'> 21<input type='text' name='TextBox02' size='10' value='xyz'> 22 23 <!-- 以下の onclick属性の中はクライアント側で動作する --> 24 <button type='button' onclick='Test01()'>Test01</button> 25 <button type='button' onclick='Test02()'>Test02</button> 26</body> 27</html>

<% %> で囲まれた部分がサーバー側で処理されたので、消えたり変わったりしていますよね。

そしてクライアント側では <script>タグで囲まれた部分が WEBブラウザにより VBScriptだと解釈されて動きます。

投稿2016/09/29 09:12

twck

総合スコア314

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

twck

2016/09/29 09:19

ついでに。 質問文の中に書かれているソースは response.write を使用しているので、サーバー側で動いていると見受けられます。 クライアント側で動かすには <% %> の外側に記述する必要があります。 ただし、クライアント側の VBScript はセキュリティの関係上、クライアントのレジストリにアクセスすることはできないと思いますが。
guest

0

VBScriptはあくまで言語です。実行環境とは切り離して考える必要があります。
その実行環境がASPであればサーバーで実行されますし、
実行環境がWindows Script Host(WSH)であればローカルで動作します。

投稿2016/09/16 17:34

htsign

総合スコア870

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

asp内の<% %>で囲われた部分はサーバサイドで動作するスクリプトです。

本来はVBScriptはクライアント側で動作する(認識合ってますか?)と思いますが、

aspの<% %>で囲われていない部分はそのままクライアントに出力されますので、
そこにVBScriptが記載されていれば、クライアントで動作します。

投稿2016/09/13 09:23

attercop

総合スコア246

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

javabigineer

2016/09/14 08:16

asp内にVBScriptを記載する際に<%%>で囲わなくても記載できるんですか? (無知ですいません)
attercop

2016/09/14 08:37

aspの<% %>で囲わない部分では、主にクライアントに出力するHTMLを記載していると思いますが、HTML内のスクリプトとしてVBScriptを記載することが出来ます。 ただし、HTMLでVBScriptが動作するのは、IEでIE10以前のバージョンのみため、基本的にはjavascriptで記載した方が良いと思います。 https://msdn.microsoft.com/ja-jp/library/cc392199.aspx
guest

0

そのVBScriptがサーバー側にあれば、サーバー側で動作します。

みたところ、サーバーからクライアントのレジストリを見たいといったところでしょうか?
その場合、クライアントにそのVBScriptを置いて、そこで実行する必要があります。

投稿2016/09/13 08:52

jm1156

総合スコア866

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

javabigineer

2016/09/13 08:54

JavascriptやVBScriptはクライアント操作(入力チェック等のような)が可能と認識していたのですが、 サーバー側においていたらできないということですか?
jm1156

2016/09/13 08:57

クライアント側におけば操作は可能です。 サーバー側ではできません。 それに、サーバー側からクライアントのレジストリが読めたらセキュリティ的にやばいかと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問