現在使用しているブックマークレット

日曜日, 1月 24th, 2010

ブックマークレットとは、JavaScriptで記述された(比較的)小さなプログラムである。主に、ブラウザのブックマークに登録して利用することから、この名称がついている。このブックマークレットを最近はどんどん使っているため、自分の使っているブラウザ(Chromeブラウザ)のブックマークバーは多くのブックマークで溢れそうな状態です。自分は基本的にウェブページをブックマークすることはなく、普段からよくアクセスするサイト(20~30サイトほど)を見ようとするときは、直接アドレスバーにURLを打ち込むという特殊な使い方(?)をしていたため、全くブックマークを使っていなかったのですが、このブックマークレットを多く使い始めてからはブックマークの量が少しずつ増えてきました。

ということで、この記事では自分が使っているブックマークレットの中で便利なものをいくつか紹介しようかと思います。

ブログを書く人ならeMiniA

ブログを書く人ならこのeMiniAというブックマークレットは手放せないツールになるでしょう。自分自身もこのeMiniAによって、ブックマークレットの世界に引き込まれました。このブックマークレットは、今自分が見ているウェブページのURLとページタイトルを元に、そのページへのリンクタグを生成してくれるブックマークレットです。ブログを書いていて、ちょっと引用したいなぁとか、リンクを貼りたいなぁというときに、URLをコピペして、リンクタグを書いて、href属性にURLをペーストして・・・と毎回毎回やるのは大変ですよね。そんなブロガーの方にはオススメです。ちなみに、自分が使っているeMiniAはtarget属性に_blankを付加したリンクタグを生成し、eMiniAとは別にeMiniBというブックマークレットはtarget属性が設定されていないタイプです。eMiniAをご利用予定の方は以下のURLからどうぞ。

(続きを読む…)

HTML5における新しいフォームのマークアップ

水曜日, 12月 30th, 2009

現在使われているWEBのマークアップ言語HTMLの新バージョン5の仕様がいろいろなところで公開されています。このHTML5では、今までのバージョン4と比べ、非常に多くのタグを利用可能になっております。これらのHTML5で新しく使えるようになったタグの多くは、セマンティック・ウェブの実現、インタラクティブなウェブページの開発を容易にすることに目を向けたタグになっています。そこでこの記事では、HTML5で新しくなったものの1つであるフォームについて解説しようと思います。

なお、当記事は、<html>5 doctor::Designing a blog with html5の記事を、自分なりに和訳して理解したものを書いています。場合によっては和訳が間違っており、正しくないことを書いてしまっている場合もあります。もし、おかしな点などございましたら、上記サイトから、該当箇所を確認していただくか、コメント欄やtwitter(@1987yama3)までご連絡いただけたらと思います。

(続きを読む…)

[Ajax勉強中] パスワード確認欄のチェック機能

土曜日, 5月 2nd, 2009

昨日に引き続きAjax勉強中に関する記事になります。とりあえず昨日作ってみたJavascriptによる
パスワード確認欄のチェック機能です。いろいろなサービスの新規登録時に
パスワード、パスワード(確認用)の2回パスワードを入力することが多いのですが、この入力した
2つのパスワードが一致するかどうかをリアルタイムで確認する機能になります。今まではこの機能を
実装すべきときは、PHPを使ってサーバー側で処理をしていたのですが、これだと一度入力した全データを
サーバー側に送らなければいけないのでユーザとしては不便です。それをクライアントPC上で完結させるために
Javascriptの出番となるわけです。

スクリプト(register.js)

  1. /* ***************************************
  2.  * パスワードチェックを行うスクリプト。
  3.  * <input type=”password” id=”passwd” />
  4.  * と
  5.  * <input type=”password” id=”passwd_conf” />
  6.  * の入力ボックス内に変化があったときに関数passwd_checkが
  7.  * 発動し、2つのパスワードが一致しなかった場合には、
  8.  * id=resultの要素にその旨のメッセージを出力する。
  9.  * *************************************** */
  10. function passwd_check() {
  11.   // パスワード入力ボックス内の文字を取得する。
  12.   var passwd = $F(“passwd”);
  13.   var passwd_conf = $F(“passwd_conf”);
  14.   // パスワード入力ボックス内の文字を比較する。
  15.   if( passwd != passwd_conf ) {
  16.     $(‘result’).innerHTML = ”パスワードが一致しません。”;
  17.   } else {
  18.     $(‘result’).innerHTML = ”";
  19.   }
  20. }
  21. window.onload = function() {
  22.   // inputタグ(パスワード用)に変更があればパスワードチェックを行う。
  23.   new Form.Element.Observer(
  24.     ’passwd’,
  25.     1,
  26.     function (element,value){passwd_check();}
  27.   );
  28.   new Form.Element.Observer(
  29.     ’passwd_conf’,
  30.     1,
  31.     function (element,value) {passwd_check();}
  32.   );
  33. }

HTML(register.html)

  1. <!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN” ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
  2. <html xmlns=”http://www.w3.org/1999/xhtml”>
  3.   <head>
  4.     <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
  5.     <title>sample</title>
  6.     <script src=”./js/prototype.js” type=”text/javascript”></script>
  7.     <script src=”./js/register.js” type=”text/javascript”></script>
  8.     <script type=”text/javascript”>
  9.     </script>
  10.   </head>
  11.   <body>
  12.     <form method=”post” action=”./register.html” id=”register”>
  13.       <table>
  14.         <tr>
  15.           <td>パスワード</td>
  16.           <td><input type=”password” id=”passwd” /></td>
  17.         </tr>
  18.         <tr>
  19.           <td>パスワード(確認用)</td>
  20.           <td><input type=”password” id=”passwd_conf” /></td>
  21.           <td id=”result” style=”color: red;”></td>
  22.         </tr>
  23.       </table>
  24.       <input type=”submit” value=”送信” />
  25.     </form>
  26.   </body>
  27. </html>

解説?

スクリプトのほうは、最初の部分のコメントの通りで、
<input type=”password” id=”passwd” />

<input type=”password” id=”passwd_conf” />
の入力ボックス内に変化があったときに関数passwd_checkが
発動し、2つのパスワードが一致しなかった場合には、
id=resultの要素にその旨のメッセージを出力します。
また、入力ボックス内に変化があったかどうかは1秒ごとにチェックしています。これを変更するには、

    new Form.Element.Observer(‘passwd’, 1,function (element,value){passwd_check();});

の部分の第2引数が1となっているところ(青字の部分)の数字を変更すればOKです。

あとは、HTMLのほうで、formタグのidをregisterにし、二つのパスワード入力ボックスの
idをそれぞれ、passwd, passwd_confにする必要があります。

最後に、これら2つのファイルを同じ階層に置くようにしましょう。(もし、違う階層に置く必要がある場合にはregister.htmlの
scriptタグでregister.jsを指定している場所を変更してください。

おそらく、これくらいでOKのはずです。

感想

思っていたよりも簡単にできた。まぁ、ロジックが単純だからだとは思うけど。
あと追加すべきとしては、今は入力時にしかチェックしてないけど、これを送信時にもチェックすべきですね。
送信時にクライアントPC上でチェックして、もし2つのパスワードが異なっていればサーバに送信する前に
クライアントPC上でエラー出力するようにするのが一番ですね。

サンプルページ

[Ajax勉強中] インストールからテストまで

金曜日, 5月 1st, 2009

最近、Ajaxでもやってみたいなと思い、Javascript, Ajaxの勉強を少しはじめてみました。使っているライブラリはprototype.jsです。prototype.jsを選んだ理由としては、とりあえず、メジャーらしいので日本語のドキュメントが揃っているだろう、と考えたからです。

ということで、以下が、prototype.jsのダウンロードからテストまでの一連の流れです。ここまででおよそ30分程度でしょうか?

インストール

http://prototypejs.org/assets/2007/1/18/prototype.jsをダウンロードし、ドキュメント・ルートに配置する。

動作確認

以下の内容でindex.htmlファイルをドキュメント・ルートに配置。このとき、文字コードはUTF-8にする。その後、同じフォルダにinput.datというファイルを作成し、ファイルの中に適当に文字を書き込み保存する。

index.htmlをブラウザで開き、ボタンをクリック。すると、「ここがターゲット」と書かれていた部分にinput.datの中身が上書きされます。

  1.     <!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN” 
    “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
  2.     <html xmlns=”http://www.w3.org/1999/xhtml”>
  3.         <head>
  4.             <meta http-equiv=”Content-Type” 
    content=”text/html; charset=UTF-8″ />
  5.             <title>sample</title>
  6.             <script src=”prototype.js” type=”text/javascript”></script>
  7.         </head>
  8.         <body>
  9.             <p id=”blk”>ここがターゲット</p>
  10.             <input type=”button” value=”ボタン” onclick=”new Ajax.Updater(‘blk’,'input.dat’,{method: ’get’});”/>
  11.         </body>
  12.     </html>

解説

pボタンがクリックされると、rototype.js内のAjax.Updater関数を呼出し、テキストファイル内のデータを出力します。

Ajax.Updater

第1引数
ターゲット部分のid値を指定
第2引数
出力したいデータが記載されたファイルへのパス
第3引数
HTTPリクエストの方法

参考サイト

Get Adobe Flash playerPlugin by wpburn.com wordpress themes