SQLの窓

2010年11月26日


JavaSctipt : ユーザ用(名前空間付き)イベント追加メソッドの作成

IE9 になると、addEventListener が追加されますが、それまでは以下のような
実装が一般的です。但し、既存の他の関数名と同じにならないように
"lightboxTool" という名前空間を作成しています。
if ( !window['lightboxTool'] ) {
	window.lightboxTool = {};
}
lightboxTool.addEvent = function( obj, evt, callback_func ) {
	if ( obj.attachEvent ) {
		obj.attachEvent( "on" + evt , callback_func );
	}
	else {
		obj.addEventListener( evt , callback_func , false );
	}
}

以下は、ウインドウのロードとアンロード時のイベントの登録です。
( Opera の unload では、ページを移動した時に実行されます )
function window_load() {
	alert("window_load");
}
function window_unload() {
	alert("window_unload");
}
lightboxTool.addEvent(window, 'load', window_load);
lightboxTool.addEvent(window, 'unload', window_unload);



タグ:JavaSctipt
posted by lightbox at 2010-11-26 14:38 | JavaScript DOM | このブログの読者になる | 更新情報をチェックする

2010年11月17日


Firefox でのクッキーのメンテナンス( 標準で利用できるツールの場合 )

標準で利用できるツールで可能なのは、クッキーエントリ単位の削除です。
そのドメイン単位で全て削除も可能ですし、Firefox 全体も可能です。

標準で利用できるツールは、オプションから「プライバシー」タブを開いて
「Cookie を個別に削除」をクリックします。
( ※ 上部のコンボボックスが、「履歴を記憶させる」とした場合です )

Firefox_cookie_tool0
※ 「履歴を一切記憶させない」にすると、利用できません。
※ 「記憶させる履歴を詳細設定する」にすると、「Cookieを表示」ボタンが現れます

※ このウインドウは単独で動作するので、一つ前のオプションウインドウを閉じる事ができます
Firefox_cookie_tool

ページ単位で一括削除はできないので、選択して詳細を表示させて、パス
を確認しなが削除が可能です。このウインドウは、FirebugFirecookie
からも起動できます。

Firefox_cookie_tool2

有効期限が指定されない、「セッション終了時」に削除されるクッキー
を作成した後表示させるには、ツリーをいったん閉じてからもう一度
開いて下さい。

Firefox_cookie_tool3

Firefox_cookie_tool4


関連する記事

Firefox で簡単にクッキーを削除する方法


posted by lightbox at 2010-11-17 10:15 | Firefox | このブログの読者になる | 更新情報をチェックする

2010年11月12日


Firefox で簡単にクッキーを削除する方法

Firebug をインストールしてから、Firecookie をインストールします。

Ie_cookie2
Cookies タブで Firecookie を有効にします


Ie_cookie3
Cookies メニューでは一括で表示しているクッキーを全て削除できます


Ie_cookie4
右クリックで個別に削除できます。


関連する記事

IEのクッキーをドメイン単位で削除する方法


posted by lightbox at 2010-11-12 13:44 | Firefox | このブログの読者になる | 更新情報をチェックする

2010年11月08日


区切り文字を使った、入力文字列の連結

一番理解しやすいのは、CSV ですが、入力が4つあるとして、それぞれが
a b c d という変数に入っているとします。

全部入力されているのなら、全てを連結するだけなので、
x = a;
x += "," + b;
x += "," + c;
x += "," + d;

なので、初回だけが特殊である事が解ります。ですから、通常は入力が
省略される場合があるので、以下のように書きます。
x = "";

// a に値がある場合
if ( a != "" ) {
	// 最初の入力なので
	x += a;

}

// b に値がある場合
if ( b != "" ) {
	// 前に入力が無い場合は最初の入力になります
	if ( x != "" ) {
		x += ",";
	}
	x += b;
}
// c に値がある場合
if ( c != "" ) {
	// 前に入力が無い場合は最初の入力になります
	if ( x != "" ) {
		x += ",";
	}
	x += c;
}
// d に値がある場合
if ( d != "" ) {
	// 前に入力が無い場合は最初の入力になります
	if ( x != "" ) {
		x += ",";
	}
	x += d;
}

が一般的な書き方となります。
これは、どの入力が省略されても成り立つ方法です。

以下は、JavaScript の配列で整理したのです。
x = "";
var a = ["1","","","4"];
for( i = 0; i < a.length; i++ ) {
	if ( a[i] != "" ) {
		// 前に入力が無い場合は最初の入力になります
		if ( x != "" ) {
			x += ",";
		}
		x += a[i];
	}
}

この場合は、"," を使った CSV でしたが、" and " を使った
SQL の条件用の文字列を作る場合も同様です。


posted by lightbox at 2010-11-08 15:51 | プログラミング・仕様等 | このブログの読者になる | 更新情報をチェックする

2010年11月04日


メール用「非日本語」正規表現フィルタ

最近意図的な先頭文字の記号が増えました( 2010/11/4 : 文字を追加しました )。なんとかして読ませたいんでしょうが、文字増やすだけです。いったい誰が ^ や | を先頭に使うと思っているのでしょうか・・・・

基本必要なメールの Subject は一部を除いて日本語で始まるので、必要なドメインや関係ユーザをまず選択振り分けしてから最後にこれを入れています。
^[0-9A-Z.$'"~\*\-\\\?\/#_`=!\,|\^{]
Subject の先頭1文字が日本語でなければ「非日本語」フォルダへ移動です。





posted by lightbox at 2010-11-04 08:35 | 記録 | このブログの読者になる | 更新情報をチェックする

2010年11月03日


JSON と文字列の関係

外部より JSON フォーマットのデータを取得した時点では「文字列」ですから、それを JavaScript で使うようにする方法は一般的ですが、そこから「先」は結構多用で一般的では無いような気がします。

そもそも、JSON の a["a2"] は、連想配列のように見えますが、特殊文字で定義されたプロパティを参照する為の書式ですし。

また、eval 使うにあたって、配列はそのままであるとか、for in も結構実際に使うと面倒な構文であったりします。

JavaScript は、自分が知ってる言語の中では、最も難解で不可思議な機能を持ったものだと思っています。
<script type="text/javascript">
function scriptTest(evt) {

	// JSON 文字列を実体に変える一般的では無い方法
	var x = (new Function( 'return {"a1":"Finction","a2":"オブジェクトの","a3":"テスト"}' ))();
	alert(x.a1+x.a2+x.a3);

	// JSON 文字列
	var str_json = '{"a1":1,"a2":2,"a3":3}';

	// オブジェクト化
	var a = eval('(' + str_json + ')');

	// プロパティとして参照	
	alert( a.a2 );

	// 特殊文字のプロパティを参照する書式
	alert( a["a2"] );

	// 配列文字列
	var arr_str = '["a1","a2","a3"]';

	// 配列化
	a = eval(arr_str);

	// 配列として参照
	alert( a[1] );

	// 文字列リストに変換
	alert( a.join(",") );

	// リスト文字列を配列化
	a = 'a1,a2,a3'.split(",");

	// 配列として参照
	alert( a[1] );

	// 文字列リストに戻す
	alert( a.join(",") );

	// 配列を、JSON 文字列に変換
	var str = "";
	for( i = 0; i < a.length; i++ ) {
		if ( i != 0 ) {
			str += ",";
		}
		str += '"'+i+'":"'+a[i] + '"';
	}

	// オブジェクト化
	a = eval('({' + str + '})');

	// 特殊文字のプロパティを参照
	alert( a["1"] );

	// オブジェクト内のプロパティの一覧
	for( x in a ) {
		alert( x + ":" +a[x]);
	}
}
</script>
<input type="button" value="実行" onclick='scriptTest(event);'>



タグ:JSON javascript
posted by lightbox at 2010-11-03 16:15 | JavaScript オブジェクト | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり