[an error occurred while processing this directive] [an error occurred while processing this directive]


プログラミング
逆引き
クライアントとの通信
VisMでの通信
Factoryでの通信
WebServiceでの通信
CSP (Cache' Server Pages)
Cache'SQL
設定・性能


【広告】









CSPとjQueryを組み合わせる

CSP with JQuery.




JavaScriptのライブラリの中でも最も人気があるjQueryですが、最近CSPと組み合わせることが多くなってきました。
CSPとjQueryを組み合わせることで、どのようなことが出来るのか紹介したいと思います。

jQueryとは?

JavaScriptのライブラリで
  • ブラウザによるJavaScriptの挙動の差異を隠蔽してくれる
  • DOM要素の指定が強力
  • CSSの操作が容易
  • AJAXライブラリを含む
  • 拡張が容易
  • オープンソースかつフリー
という特徴があります。詳しくは
 40分で覚える!jQuery速習講座 (http://ascii.jp/elem/000/000/498/498710/)
 jQuery日本語リファレンス(http://semooh.jp/jquery/)
などを参照して下さい。

どのように使うか

jQueryのサイトからダウンロードしたライブラリ本体をWebサーバーに置いてCSPファイルから参照するのが基本的な方法ですが、一般的にはGoogle CDNを使用することが多いと思います。

Google CDNを使用する場合は、CSPソースコードの<head>〜</head>中に以下のように記述します。

<html>
<head>
<!-- Put your page Title here -->
<title> Cache Server Page </title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>

どのようなことが出来るか

このページの<a>タグでリンクされているurlを全て表示します


このような処理をjavascriptでコーディングするのは、かなり骨の折れる作業でしたが、jQueryによってかなり容易になりました。
ソースコードはこのようになっています。
function step1(){
	$('#test').empty(); // id=testの中身を全部空にする
	$('a').each(function(){ // ページ中の全てのaタグについて、以下を実行
		var url=$(this).attr('href'); // href内を変数urlに格納
		$('#test').append('<div>'+url+'</div>'); //id=testに取得したurlを<div>で囲んで追加
	});
	$('#step2').show('slow'); // id=step2を表示する
}

function step2(){
	$('#test div:even').css('background-color','royalblue'); // id=testの中の偶数個目のdivについて、背景色を設定
	$('#test div:odd').css('background-color','darkviolet'); // id=testの中の奇数個目のdivについて、背景色を設定
	$('#step3').show('slow'); // id=step3を表示する

}

function step3(){
	$('#test div').append('<input type=button class=Edit><input type=button class=Delete>');
	// id=test の中の divそれぞれに ボタンを2つずつ追加
	$('#test div input.Delete') // id=test の中の div の中の input のうち class=Deleteのものについて、
		.attr('value','Delete') // value=Delete を設定 (ボタンにDeleteと表示)
		.click(function(){ $(this).parent('div').remove(); }); // クリックされたらボタンを含むdivを空にする
	$('#test div input.Edit') // id=test の中の div の中の input のうち class=Deleteのものについて、
		.attr('value','Edit') // value=Edit を設定 (ボタンにEditち表示)
		.click(function(){ // ボタンがクリックされたら
			var str=prompt("適当に変更してみて",$(this).parent('div').text()); // 入力ダイアログを表示
			$(this).parent('div').text(str); // 入力された内容を反映
		});
}
特にブラウザ毎・バージョン毎の違いの多くをjQueryが吸収してくれるのが非常にありがたいです。

CSPとjQueryを組み合わせて、より使いやすいサイトを作っていきましょう。




[an error occurred while processing this directive] [an error occurred while processing this directive]
2015/12/28Update