JavaScript一覧

ASPでサーバ処理とクライアント処理を同時に実行

ASPでサーバ処理とクライアント処理を同時に実行するには下記の手順で実装します。
【仕組み】
1.サーバ処理でcookieを作成

2.サーバからクライアントへ戻ってきたときにcookieを監視する。cookieがある場合はサーバ処理へ戻る

3.サーバ処理を行う。

【実装手順】
1.サーバ(asp)でcookieを作成

Response.Cookies.Add(new HttpCookie("cookie", "true"));

2.クライアント(aspx)でcookieを監視

//1秒ごとにCookieを確認
setInterval(function () {
  if (getCookie("<%=COOKIE_DOWNLOAD %>")) {
    //Cookie削除
    var date = new Date();
    date.setTime( date.getTime() - 1 );
    document.cookie = 'data=; expires=' + date.toUTCString();

    //PostBack
    <%=Page.ClientScript.GetPostBackEventReference(this, 指定値) %>
  }
}, 1000);

ASPでクライアントからサーバ処理を実行

【前提条件】
・ASPでWebサイト構築
・サーバ処理からクライアント処理後に再度サーバ処理を行いたい場合
例)サーバ処理でJavaScriptのダイアログを表示し、ダイアログのOKボタン押下後にサーバ処理を行いたい場合

【手順】
1.aspのPageクラスにIPostBackEventHandlerを継承する。

2.aspにRaisePostBackEvent関数を実装する。
  ※引数のeventArgsは画面からの指定値

3.aspxにJavaScriptでPostbak関数を実装  

<%=Page.ClientScript.GetPostBackEventReference(this, 指定値) %>

JavaScriptでポップアップウィンドウにPOST変数を渡す

ポップアップで開いたウィンドウにPOST変数を渡したいと思い、調べてみました。

仕組み:
JavaScriptでポップアップを開いて、開いたウィンドウに対してPOST変数を送信

コード:
//ブランクでウィンドウを開く
title = ‘NewWindow’;
option = “width=300, height=300″;
window.open(”, title, option);

//form作成
var form = document.createElement(“form”);
//target属性は、どこにアクションURLを開くかを指定します。
form.target = title;
//POST通信設定。
form.method = ‘post’;
//遷移先のaction設定。
form.action = ‘表示するURL’;

//input type=’hidden’ を作成し、送信データを設定。
var submitType = document.createElement(“input”);
submitType.setAttribute(“name”, “hoge”);
submitType.setAttribute(“type”, “hidden”);
submitType.setAttribute(“value”, “送信データ”);

//form に作成したinput要素を追加。
form.appendChild(submitType);
var body = document.getElementsByTagName(“body”)[0];

//一旦domに書き出して
body.appendChild(form);
//送信!
form.submit();
//送信後に作成したform要素の削除
body.removeChild(form);

参考URL:http://bulbulpaul.hatenablog.jp/entry/2013/08/06/003832


JavaScriptでグラフ生成

Webページにグラフを簡単に表示できないかと調べたところ、超簡単にグラフを作成できるライブラリを見つけました。

jQueryのプラグインjqPlot
jqPlot

超簡単です。


JavaScriptでクエリ文字列を取得

URLに記述されているクエリ文字列(http://aaaa.com/index.html?a=1&b=2のようなURLのa=1とかb=2のこと)をJavaScriptで取得したいので調べました。
下記の通りでできます。しかも連想配列なのでアクセスも便利です。

例)URLが「http://aaaa.com/index.html?a=1&b=2」の場合
aの値は、vars[‘a’]、bの値はvars[‘b’]で取得可能

ここからJavaScript—————————————————————
var vars = [], max = 0, hash = “”, array = “”;
var url = window.location.search;

//?を取り除くため、1から始める。複数のクエリ文字列に対応するため、&で区切る
hash = url.slice(1).split(‘&’);
max = hash.length;

for (var i = 0; i < max; i++) {
array = hash[i].split(‘=’); //keyと値に分割。
vars.push(array[0]); //末尾にクエリ文字列のkeyを挿入。
vars[array[0]] = array[1]; //先ほど確保したkeyに、値を代入。
}
ここまでJavaScript—————————————————————