[三流君] −−> [ASPで遊ぶ、失敗する] −−> [バックナンバー一覧]
−−> No.98 ASP VBScriptとJavaScripの混在(encodeURI関数を使いたい)

ASP VBScriptとJavaScripの混在(encodeURI関数を使いたい)



本文(発行内容)


ASP VBScriptとJavaScripの混在(encodeURI関数を使いたい)

こんにちは、三流プログラマーのKen3です。

今回は、
<SCRIPT LANGUAGE="JavaScript" RUNAT="server">
と記述して、JavaScriptの関数を書き、
その関数をASP VBScriptから呼んでみます。
また、クライアントで実行されるJavaスクリプトと混在して実行させてみました。
※言語や実行場所がゴチャゴチャして、頭が変になりそうだけど。

/* * 1.今回のキッカケ */

前回、UTF-8の変換をボロボロになりながら作りました。 三流君ASP http://www.ken3.org/cgi-bin/test/test097-2.asp?DATA=%8EO%97%AC%8CNASP 娘。 http://www.ken3.org/cgi-bin/test/test097-3.asp?DATA=%96%BA%81B 転職 http://www.ken3.org/cgi-bin/test/test097-3.asp?DATA=%93%5D%90E など、自作のSJISからUTF-8の変換ルーチンを作って回しました。 発行後、下記のメールをいただきました。 --- >javascriptのencodeURI関数を使えばUTF-8でエンコードできるだろボケ!! >速度の遅いバグ付の関数を世の中に出すな!! --- と一言・二言・みこと、助言をいただきました。 (助言か?これ?※天然ボケの三流プログラマーなので助言と受け取りました)

/* * 2.VBScript と JavaScript の 混在 */

>javascriptのencodeURI関数を使えばUTF-8でエンコードできるだろボケ!! って言われてもなぁ、Excel VBA歴が長いんで、 ASPでJavaScript使えても、VBScriptを選択してるんだよなぁ。 JavaScriptには、用意されているんだぁ変換関数、いいなぁ〜 って話じゃなくて、助言してくれているんだから、なにかありそうな。 共通の変数、Application("XXXX")とアプリの変数経由でできるのかなぁ。 VBScript JavaScript 混在 を キーワードにGoogleで探す。 すると、えっこんなことできるの? 百聞は一見に・・・まず、 下記のような感じで、RUNAT="Server"を指定する。 <SCRIPT LANGUAGE="JavaScript" RUNAT="Server"> function TestJavaFunction(n) { return ( n * 12); //受け取った数に*12して返す } </SCRIPT> <%=TestJavaFunction(10)%> とコールすると 120と結果が返ります。 http://www.ken3.org/cgi-bin/test/test098-1.asp でテストできるので、ソースと合わせて混在を確認してください。

/* * 3.JavaScriptのencodeURI関数を使ってみた */

よし、これで変換できるなら、 JavaScriptのencodeURI関数を使ってtest097-3.aspを変更してみます。 と思ったら、 encodeURIって関数のコールで失敗している。。。 う〜ん、なんだろう? encodeURIをキーワードに検索すると、 http://www.microsoft.com/japan/msdn/library/ja/jscript7/html/jsmthfencodeuri.asp >解説 >encodeURI メソッドはエンコードした URI を返します。 >結果を decodeURI に渡すと、元の文字列が返されます。 >encodeURI メソッドは、「:」、「/」、「;」、「?」の各文字はエンコードしません。 >これらの文字をエンコードする場合、encodeURIComponent を使用します。 > >必要条件 >バージョン 5.5 バージョン5.5かぁ。 RUNAT="Server"じゃなくてクライアントでテストをやってみます。 ※IISのバージョンによっては、まだ未サポートなのかも。 クライアントのJavaScriptでUFT-8変換して、 document.write で結果を出力してみたいと思います。 ポイントは、 サーバー側で変数処理を行って、 クライアントで実行されるプログラムで、 msg = "<%=CHK_DATA%>" として、文字列を渡してます(渡しているように見せかけてます) こんな方法がいいのか、わかりませんが、 一つの方法として頭のスミにでも。 下記、 http://www.ken3.org/cgi-bin/test/test098-2.asp の一部です。ソース全体は↑をみてください。 <% 'ここはサーバーで実行される CHK_DATA = Request.QueryString("DATA") 'データを変数に保存 '長さをチェックする If Len(CHK_DATA) = 0 Then '文字が入っていなかったら CHK_DATA = "システム開発" '初期値を入れてみた End If %> <hr> <script language=javascript> //ここはクライアントのJavaScriptの世界です var msg; var strurl; msg = "<%=CHK_DATA%>" document.write (msg + "←変数渡ったかなぁ<br>"); //encodeURI関数を使ってみる document.write (encodeURI(msg) + "←変換結果<br>"); //リンクを作る document.write ("↓googleのリンクを作ってみます<br>"); strurl = "http://www.google.co.jp/search?hl=ja&ie=UTF-8&q="; strurl = strurl + encodeURI("<%=CHK_DATA%>"); document.write ("<a Href='"+strurl+"'>"+strurl+"</a><br>"); document.write ("↑無事飛べましたか?<br>"); </script> <hr> テストデータの入力<br> <FORM ACTION="test098-2.asp" METHOD="GET"> テストしたい文字列を入力してください。<br> <INPUT TYPE="text" SIZE="30" NAME="DATA" VALUE="<%=CHK_DATA%>"> <INPUT TYPE="submit" VALUE="変換開始"><br> ↑いろいろと遊んでみてください↑ </FORM> 今回作成のクライアントJavaScriptのencodeURI関数試用版 三流君ASP http://www.ken3.org/cgi-bin/test/test098-2.asp?DATA=%8EO%97%AC%8CNASP 娘。 http://www.ken3.org/cgi-bin/test/test098-2.asp?DATA=%96%BA%81B 転職 http://www.ken3.org/cgi-bin/test/test098-2.asp?DATA=%93%5D%90E と 前回作成のASPで自作UTF-8変換版 三流君ASP http://www.ken3.org/cgi-bin/test/test097-2.asp?DATA=%8EO%97%AC%8CNASP 娘。 http://www.ken3.org/cgi-bin/test/test097-3.asp?DATA=%96%BA%81B 転職 http://www.ken3.org/cgi-bin/test/test097-3.asp?DATA=%93%5D%90E 違いや処理方法を比べてみてください。

/* * 4.終わりの挨拶 </HTML> */

今回は、混在をキーワードに、 VBScriptとJavaScriptの混在、 サーバー側とクライアント側のスクリプトの混在、 そんな感じで書いてみました。 なんだか、複雑怪奇にしてしまってますが、 JavaScriptの関数だと楽な時(使いたい場合など) 一つの案として、受け取ってください。 何かの参考となれば幸いです。 ASP、VBScript勉強中の三流プログラマーのKen3でした。


ページフッター

ここまで、読んでいただきどうもです。目的の情報が見つかったか?少々心配しつつ、、、

三流君へ メッセージを送る

感想や質問・要望・苦情など 三流君へメッセージを送る。
返信例 XXXXさんへ
下記のフォームからメッセージを送ることができます。


あなたのお名前(ニックネーム):さん
返信は?:

アドレス:に返事をもらいたい
感想や質問↓:


(感想や質問・要望・苦情はHPで記事に載せることがあります。)

種類別のリンク や 広告など

[三流君(TOP ken3.org へ戻る)] / [ASPで遊ぶ、失敗する] / [ASP記事 バックナンバー目次]


Blogとリンク:[三流君のMemo別館]/ [ASP 三流君のソースコード置き場]/ [Ken3Video YouTubeで動画解説]
広告:

気になった ジャンル ↓を選択してください。

まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。

次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません

広告:



DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く

VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。



[三流君(TOP ken3.org へ戻る)] / [ASPで遊ぶ、失敗する] / [ASP記事 バックナンバー目次]


広告: