<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>@blog.justoneplanet.info &#187; HTML(XHTML)</title>
	<atom:link href="http://blog.justoneplanet.info/category/computer-language/html-xhtml/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.justoneplanet.info</link>
	<description>JavaScript、PHP、MySQLを使ったり</description>
	<lastBuildDate>Sun, 25 Jul 2010 07:34:20 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>svgをやりたいからRaphaëlを使ってみる</title>
		<link>http://blog.justoneplanet.info/2010/07/19/svg%e3%82%92%e3%82%84%e3%82%8a%e3%81%9f%e3%81%84%e3%81%8b%e3%82%89raphael%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://blog.justoneplanet.info/2010/07/19/svg%e3%82%92%e3%82%84%e3%82%8a%e3%81%9f%e3%81%84%e3%81%8b%e3%82%89raphael%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 05:03:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML(XHTML)]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=2688</guid>
		<description><![CDATA[実践あるのみ。o(^O^*=*^O^)oでも面倒だからjQueryを使用する。

■円を描く
JavaScript

$(function(){
    // 描画エリアをidで指定
    var paper = Ra [...]]]></description>
			<content:encoded><![CDATA[<p>実践あるのみ。o(^O^*=*^O^)oでも面倒だからjQueryを使用する。</p>
<p><script type="text/javascript" src="/js/raphael-min.js"></script></p>
<h3>■円を描く</h3>
<h4>JavaScript</h4>
<pre class="brush: jscript;">
$(function(){
    // 描画エリアをidで指定
    var paper = Raphael(&quot;notepad&quot;, 320, 50);
    // 円を描く
    var circle = paper.circle(20, 20, 10);
});
</pre>
<h4>HTML</h4>
<pre class="brush: xml;">
&lt;div id=&quot;notepad&quot;&gt;&lt;/div&gt;
</pre>
<h4>サンプル</h4>
<p><script type="text/javascript">
jQuery(function(){
    var paper = Raphael("notepad20100719", 320, 50);
    var circle = paper.circle(20, 40, 10);
});
</script></p>
<div id="notepad20100719"></div>
<p>おー。できた(*^-^)</p>
<h3>■パスを描く</h3>
<h4>JavaScript</h4>
<pre class="brush: jscript;">
$(function(){
    // 描画エリアをidで指定
    var paper = Raphael(&quot;notepad&quot;, 320, 200);
    // パスを描く
    var path = paper.path(&quot;M25 25L20 65L25 105L65 110L105 105L110 65L105 25L75 20L45 25L40 55L45 85L65 90L85 85L90 65L85 45L75 40L65 45L60 55L65 65&quot;);
});
</pre>
<h4>サンプル</h4>
<p><script type="text/javascript">
jQuery(function(){
    var paper = Raphael("notepad2010071901", 320, 200);
    var path = paper.path("M25 25L20 65L25 105L65 110L105 105L110 65L105 25L75 20L45 25L40 55L45 85L65 90L85 85L90 65L85 45L75 40L65 45L60 55L65 65");
});
</script></p>
<div id="notepad2010071901"></div>
<p>ふむふむ。分かってきた。<a href="http://www.w3.org/TR/SVG/paths.html#PathData">パスの書き方</a>を見てみると相対的でも座標を指定できるらしい。</p>
<h3>■文字を描く</h3>
<h4>JavaScript</h4>
<pre class="brush: jscript;">
$(function(){
    // 描画エリアをidで指定
    var paper = Raphael(&quot;notepad&quot;, 320, 30);
    // 文字を描く
    var string = paper.text (90, 10, &quot;なめらかなベクターグラフィックス。\nSVGです。&quot;);
});
</pre>
<h4>サンプル</h4>
<p><script type="text/javascript">
jQuery(function(){
    var paper = Raphael("notepad2010071902", 320, 30);
    var string = paper.text (90, 10, "なめらかなベクターグラフィックス。\nSVGです。");
});
</script></p>
<div id="notepad2010071902"></div>
<p>おー。どうやらセンタリングされるらしいな★</p>
<h3>■ドラッグ&#038;ドロップしてみる</h3>
<h4>JavaScript</h4>
<pre class="brush: jscript;">
$(function(){
    var paper = Raphael(&quot;notepad&quot;, 500, 100);
    var circle = paper.circle(50, 40, 10);
    circle.attr(&quot;fill&quot;, &quot;#55ccff&quot;);
    circle.attr(&quot;stroke&quot;, &quot;#55ccff&quot;);
    circle.drag(
        function(dx, dy){// move
            this.attr({
                &quot;cx&quot; : this.ox + dx,
                &quot;cy&quot; : this.oy + dy
            });
        },
        function(){// start
            this.ox = this.attr(&quot;cx&quot;);
            this.oy = this.attr(&quot;cy&quot;);
            this.attr({&quot;opacity&quot; : 0.5});
        },
        function(){// end
            this.attr({&quot;opacity&quot; : 1});
        }
    );
});
</pre>
<h4>サンプル</h4>
<p><script type="text/javascript">
jQuery(function(){
    var paper = Raphael("notepad2010071903", 500, 100);
    var circle = paper.circle(50, 40, 10);
    circle.attr("fill", "#55ccff");
    circle.attr("stroke", "#55ccff");
    circle.drag(
        function(dx, dy){
            this.attr({
                "cx" : this.ox + dx,
                "cy" : this.oy + dy
            });
        },
        function(){
            this.ox = this.attr("cx");
            this.oy = this.attr("cy");
            this.attr({"opacity" : 0.5});
        },
        function(){
            this.attr({"opacity" : 1});
        }
    );
});
</script></p>
<div id="notepad2010071903"></div>
<p>おー。キター(゜∀゜)</p>
<h3>■DOM</h3>
<p>DOMが取り出せるらしいぞ！</p>
<h4>JavaScript</h4>
<pre class="brush: jscript;">
$(function(){
    var paper = Raphael(&quot;notepad&quot;, 320, 50);
    var circle = paper.circle(20, 20, 10);
    circle.attr('fill', 'blue');
    circle.node.onclick = function(){
        alert('hello!');
    }
});
</pre>
<h4>サンプル</h4>
<p><script type="text/javascript">
jQuery(function(){
    var paper = Raphael("notepad2010071904", 320, 50);
    var circle = paper.circle(20, 20, 10);
    circle.attr('fill', 'blue');
    circle.node.onclick = function(){
        alert('hello!');
    }
});
</script></p>
<div id="notepad2010071904"></div>
<p>jQueryと組み合わせは・・・</p>
<pre class="brush: jscript;">
$(function(){
    var paper = Raphael(&quot;notepad&quot;, 320, 50);
    var circle = paper.circle(20, 20, 10);
    circle.attr('fill', 'blue');
    $(circle.node).click(function(){
        alert('hello!');
    });
});
</pre>
<h4>サンプル</h4>
<p><script type="text/javascript">
jQuery(function(){
    var paper = Raphael("notepad2010071905", 320, 50);
    var circle = paper.circle(20, 20, 10);
    circle.attr('fill', 'blue');
    jQuery(circle.node).click(function(){
        alert('hello!');
    });
});
</script></p>
<div id="notepad2010071905"></div>
<p>むはっ★</p>
<pre class="brush: jscript;">
$(function(){
    var paper = Raphael(&quot;notepad&quot;, 320, 50);
    var circle = paper.circle(20, 20, 10);
    circle.attr('fill', 'blue');
    $(circle.node).click(function(){
        circle.hide();
    });
});
</pre>
<h4>サンプル</h4>
<p><script type="text/javascript">
jQuery(function(){
    var paper = Raphael("notepad2010071906", 320, 50);
    var circle = paper.circle(20, 20, 10);
    circle.attr('fill', 'blue');
    jQuery(circle.node).click(function(){
        circle.hide();
    });
});
</script></p>
<div id="notepad2010071906"></div>
<h3>■参考</h3>
<p><a href="http://raphaeljs.com/reference.html">Raphael Reference</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2010/07/19/svg%e3%82%92%e3%82%84%e3%82%8a%e3%81%9f%e3%81%84%e3%81%8b%e3%82%89raphael%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>html5を使う準備をする</title>
		<link>http://blog.justoneplanet.info/2010/07/18/html5%e3%82%92%e4%bd%bf%e3%81%86%e6%ba%96%e5%82%99%e3%82%92%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.justoneplanet.info/2010/07/18/html5%e3%82%92%e4%bd%bf%e3%81%86%e6%ba%96%e5%82%99%e3%82%92%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 06:35:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML(XHTML)]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=2681</guid>
		<description><![CDATA[■準備
DOCTYPE宣言
以下のように記述する。

&#60;!DOCTYPE html&#62;

エンコード
以下のように記述する。

&#60;meta charset=&#34;UTF-8&#34; /&#62;
 [...]]]></description>
			<content:encoded><![CDATA[<h3>■準備</h3>
<h4>DOCTYPE宣言</h4>
<p>以下のように記述する。</p>
<pre class="brush: xml;">
&lt;!DOCTYPE html&gt;
</pre>
<h4>エンコード</h4>
<p>以下のように記述する。</p>
<pre class="brush: xml;">
&lt;meta charset=&quot;UTF-8&quot; /&gt;
</pre>
<p>もしくは以下のように記述する。</p>
<pre class="brush: xml;">
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
</pre>
<p>どっちかだけ書くように(o^-&#8217;)b</p>
<h3>■時代遅れのブラウザで使う準備</h3>
<p>block要素として認識してほしいものをcssで指定。</p>
<pre class="brush: css;">
section,
header,
footer,
nav,
aside,
article,
address,
figure,
hgroup,
menu {
    display: block;
}
[hidden],
menu[type=&quot;context&quot;],
command,
datalist,
rp,
source {
    display: none;
}
</pre>
<h4>IE6~8</h4>
<p>面倒なので以下のスクリプトを書いて終わりにする。m(｡･ε･｡)m</p>
<pre class="brush: xml;">
&lt;!--[if lt IE 9]&gt;
&lt;script src=&quot;http://html5shiv.googlecode.com/svn/trunk/html5.js&quot;&gt;&lt;/script&gt;
&lt;![endif]--&gt;
</pre>
<p>中身が気になる。｢(ﾟﾍﾟ)</p>
<pre class="brush: jscript;">
// html5shiv MIT @rem remysharp.com/html5-enabling-script
// iepp v1.5.1 MIT @jon_neal iecss.com/print-protector
(function (p, e)
{
    var q = e.createElement(&quot;div&quot;);
    q.innerHTML = &quot;&lt;z&gt;i&lt;/z&gt;&quot;;
    q.childNodes.length !== 1 &amp;&amp; function ()
    {
        function r(a, b)
        {
            if (g[a]) {
                g[a].styleSheet.cssText += b;
            }
            else {
                var c = s[l], d = e[j](&quot;style&quot;);
                d.media = a;
                c.insertBefore(d, c[l]);
                g[a] = d;
                r(a, b)
            }
        }
        function t(a, b)
        {
            for (var c = new RegExp(&quot;\\b(&quot; + m + &quot;)\\b(?!.*[;}])&quot;, &quot;gi&quot;), d = function (k)
            {
                return &quot;.iepp_&quot; + k;
            },
            h =- 1;
            ++h &lt; a.length;
            ) {
                b = a[h].media || b;
                t(a[h].imports, b);
                r(b, a[h].cssText.replace(c, d))
            }
        }
        for (var s = e.documentElement, i = e.createDocumentFragment(), g = {}, m = &quot;abbr article aside audio canvas details figcaption figure footer header hgroup mark meter nav output progress section summary time video&quot;.replace(/ /g,
        '|'), n = m.split(&quot;|&quot;), f = [], o =- 1, l = &quot;firstChild&quot;, j = &quot;createElement&quot;;
        ++o &lt; n.length;
        ) {
            e[j](n[o]);
            i[j](n[o])
        }
        i = i.appendChild(e[j](&quot;div&quot;));
        p.attachEvent(&quot;onbeforeprint&quot;, function ()
        {
            for (var a, b = e.getElementsByTagName(&quot;*&quot;), c, d, h = new RegExp(&quot;^&quot; + m + &quot;$&quot;, &quot;i&quot;), k =- 1; ++k &lt; b.length; )
            {
                if ((a = b[k]) &amp;&amp; (d = a.nodeName.match(h)))
                {
                    c = new RegExp(&quot;^\\s*&lt;&quot; + d + &quot;(.*)\\/&quot; + d + &quot;&gt;\\s*$&quot;, &quot;i&quot;);
                    i.innerHTML = a.outerHTML.replace(/\r|\n/g, &quot; &quot;).replace(c, a.currentStyle.display == &quot;block&quot; ? &quot;&lt;div$1/div&gt;&quot; : &quot;&lt;span$1/span&gt;&quot;);
                    c = i.childNodes[0];
                    c.className += &quot; iepp_&quot; + d;
                    c = f[f.length] = [a, c];
                    a.parentNode.replaceChild(c[1], c[0])
                }
                t(e.styleSheets, &quot;all&quot;);
            }
        });
        p.attachEvent(&quot;onafterprint&quot;, function ()
        {
            for (var a =- 1, b; ++a &lt; f.length; ) {
                f[a][1].parentNode.replaceChild(f[a][0], f[a][1]);
            }
            for (b in g) {
                s[l].removeChild(g[b]);
            }
            g = {};
            f = [];
        })
    }
    ()
})(this, document);
</pre>
<p>古いIEって大変だね。ヾ(･･;)</p>
<h3>■その他</h3>
<ul>
<li>タグは省略できるが、個人的にはチャント書く。</li>
<li>場合によっては無くても良いが、個人的に属性値はチャント&#8221;で括る。</li>
</ul>
<h4>バリデート</h4>
<p><a href="http://html5.validator.nu/">こいつ</a>を使う。o(^o^)o</p>
<div class="kakomi">
<h4>新要素</h4>
<p>ほんの一部をピックアップ。</p>
<table>
<tr>
<th>section</th>
<td>文章のアウトライン</td>
</tr>
<tr>
<th>header</th>
<td>セクションのヘッダー</td>
</tr>
<tr>
<th>footer</th>
<td>セクションのフッター</td>
</tr>
<tr>
<th>nav</th>
<td>外側のセクションに対するナビゲーション</td>
</tr>
<tr>
<th>aside</th>
<td>外側のセクションに対する補足情報</td>
</tr>
<tr>
<th>article</th>
<td>セクションみたいな感じで、独立したコンテンツ</td>
</tr>
<tr>
<th>hgroup</th>
<td>h1~h6をまとめる</td>
</tr>
<tr>
<th>menu</th>
<td><a href="http://www.html5.jp/tag/elements/menu.html">コマンドのリスト</a></td>
</tr>
<tr>
<th>figure</th>
<td>キャプションとセットの要素を埋め込む際に使用</td>
</tr>
<tr>
<th>video</th>
<td>動画</td>
</tr>
<tr>
<th>audio</th>
<td>音声</td>
</tr>
<tr>
<th>source</th>
<td>videoやaudioで使う</td>
</tr>
<tr>
<th>canvas</th>
<td>キャンバス</td>
</tr>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2010/07/18/html5%e3%82%92%e4%bd%bf%e3%81%86%e6%ba%96%e5%82%99%e3%82%92%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>もっともっとFile APIを使ってサーバ側で受け取ってみる</title>
		<link>http://blog.justoneplanet.info/2010/06/14/%e3%82%82%e3%81%a3%e3%81%a8%e3%82%82%e3%81%a3%e3%81%a8file-api%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%82%b5%e3%83%bc%e3%83%90%e5%81%b4%e3%81%a7%e5%8f%97%e3%81%91%e5%8f%96%e3%81%a3%e3%81%a6%e3%81%bf/</link>
		<comments>http://blog.justoneplanet.info/2010/06/14/%e3%82%82%e3%81%a3%e3%81%a8%e3%82%82%e3%81%a3%e3%81%a8file-api%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%82%b5%e3%83%bc%e3%83%90%e5%81%b4%e3%81%a7%e5%8f%97%e3%81%91%e5%8f%96%e3%81%a3%e3%81%a6%e3%81%bf/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 18:18:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML(XHTML)]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=2663</guid>
		<description><![CDATA[前回の記事に以下の質問がありました。
質問なのですがバイナリデータはsendでは送れないのでは？
自分も同じようなことをしているのですがFireFox限定のsendAsBinaryでないと無理でした。
どのようにして転送 [...]]]></description>
			<content:encoded><![CDATA[<p>前回の記事に以下の質問がありました。</p>
<blockquote><p>質問なのですがバイナリデータはsendでは送れないのでは？<br />
自分も同じようなことをしているのですがFireFox限定のsendAsBinaryでないと無理でした。<br />
どのようにして転送してるのでしょうか？</p></blockquote>
<p>えーと。。。(･Θ･;)。。。あの、その。。。うかれててサーバ側を考えてませんでした。すみませんm(_ _)m</p>
<h3>■クライアント側のコード</h3>
<p>前回のコードとおなじ。</p>
<pre class="brush: jscript;">
function dragStart(e){
    //e.preventDefault();
}
function dragEnter(e){
    //e.preventDefault();
}
function dragOver(e){
    e.preventDefault();
}
function drop(e){
    var files = e.dataTransfer.files;
    for(var i = 0; i &lt; files.length; i++){
        var request = new XMLHttpRequest();
        request.upload.onprogress = function(e){
            document.getElementById('progress').style.width = ((e.loaded / e.total) * 100 + &quot;%&quot;);
        }
        request.upload.onload = function(e){
            document.getElementById('progress').style.width = '0px';
            alert('finished');
        }
        request.open('post', &quot;./index.html&quot;);
        request.send(files[i]);
    }
    e.preventDefault();
}
</pre>
<h4>サーバー側</h4>
<p>今回のケースは、$_FILESなどでファイルを取得することはできない。以下のようにして生のPOSTデータを取得しなければならない。</p>
<pre class="brush: php;">
$post = fopen(&quot;php://input&quot;, &quot;r&quot;);
file_put_contents('./test.png', $post);//ファイル名はテストなので固定=3
fclose($post);
</pre>
<p>ちゃんと受け取れるヽ(^◇^*)/。簡易的なコードなので実環境ではフィルタリングしてください。</p>
<h3>■sendAsBinaryとsendを比較して使ってみる</h3>
<p>以下はsendAsBinaryを使ったサンプルである。</p>
<pre class="brush: jscript;">
request.open('post', &quot;./index.html&quot;);
request.sendAsBinary(files[i].getAsBinary());
</pre>
<p>上述のコードが以下のコードに対応する。</p>
<pre class="brush: jscript;">
request.open('post', &quot;./index.html&quot;);
request.send(files[i]);
</pre>
<h4>まとめ</h4>
<ol>
<li>引数がFileオブジェクトの時はsendを使用する</li>
<li>引数がBinary文字列の時はsendAsBinaryを使用する</li>
<li>引数がBinary文字列の時にsendを使用すると途中でデータがカットされてしまう</li>
</ol>
<p>なるほど！</p>
<h4>sendAsBinaryとは</h4>
<blockquote><p>A variant of the send() method that sends binary data.</p></blockquote>
<p><a href="https://developer.mozilla.org/en/xmlhttprequest#sendAsBinary%28%29">sendAsBinary</a>はsendメソッドの変異体らしい。</p>
<blockquote><p>This data is converted to a string of single-byte characters by truncation (removing the high-order byte of each character).</p></blockquote>
<p>シングルバイト文字列に変換されるらしい。</p>
<div class="kakomi">
<h5>$_FILESで受け取りたい時</h5>
<p>以下のようにsendAsBinaryを使用する。</p>
<pre class="brush: jscript;">
request.open('post', &quot;./index.php&quot;, true);
var boundary = '------multipartformboundary1276452374015';
request.setRequestHeader(
    'content-type',
    'multipart/form-data; boundary=' + boundary
);
request.setRequestHeader(
    'content-length',
    files[i].size
);
request.sendAsBinary(
    '--' + boundary + '\n' +
    'Content-Disposition: form-data; name=&quot;file&quot;; filename=&quot;test.png&quot;\n\n' +
    'Content-Type: application/octet-stream\n\n' +
    files[i].getAsBinary() + '\n' +
    '--' + boundary + '--'
);
</pre>
<p>以下のようにsendAsBinaryを使用する。ちなみにboundaryとは</p>
<blockquote><p>マルチパートのデータは、この例のように「境界（boundary）」となる行でデータ項目が区切られ、それぞれがContent-Dispositionという説明情報などのあとに実際のデータが続くという形を取ります。</p></blockquote>
<p>とのことである。</p>
<p>PHPでは以下のように受け取れる。</p>
<pre class="brush: php;">
var_dump($_FILES);
/*
array(1) {
  [&quot;file&quot;]=&gt;
  array(5) {
    [&quot;name&quot;]=&gt;
    string(8) &quot;test.png&quot;
    [&quot;type&quot;]=&gt;
    string(0) &quot;&quot;
    [&quot;tmp_name&quot;]=&gt;
    string(14) &quot;/tmp/sdhfhsg&quot;
    [&quot;error&quot;]=&gt;
    int(0)
    [&quot;size&quot;]=&gt;
    int(10)
  }
}
*/
</pre>
<h5>参考</h5>
<ul>
<li><a href="http://wiki.livedoor.jp/omiorz/d/Firefox_3.6_File_Upload">Firefox_3.6_File_Upload</a></li>
<li><a href="http://blog.igstan.ro/2009/01/pure-javascript-file-upload.html">Ajax file upload with pure JavaScript</a></li>
<li><a href="http://www.kanzaki.com/docs/html/htminfo32.html">フォームデータの送信</a></li>
</ul>
</div>
<p>勉強になったー=3</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2010/06/14/%e3%82%82%e3%81%a3%e3%81%a8%e3%82%82%e3%81%a3%e3%81%a8file-api%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%82%b5%e3%83%bc%e3%83%90%e5%81%b4%e3%81%a7%e5%8f%97%e3%81%91%e5%8f%96%e3%81%a3%e3%81%a6%e3%81%bf/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>もっとFile APIを使ってXMLHttpRequestと組み合わせてみる</title>
		<link>http://blog.justoneplanet.info/2010/06/13/%e3%82%82%e3%81%a3%e3%81%a8file-api%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6xmlhttprequest%e3%81%a8%e7%b5%84%e3%81%bf%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://blog.justoneplanet.info/2010/06/13/%e3%82%82%e3%81%a3%e3%81%a8file-api%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6xmlhttprequest%e3%81%a8%e7%b5%84%e3%81%bf%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 17:14:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML(XHTML)]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=2633</guid>
		<description><![CDATA[XMLHttpRequest Level2ではバイナリデータもアップロードできるようになった！ヽ(=´▽`=)ﾉ
■ソース
基本的には前回と同じコードを利用している。

&#60;p ondragstart=&#34;d [...]]]></description>
			<content:encoded><![CDATA[<p>XMLHttpRequest Level2ではバイナリデータもアップロードできるようになった！ヽ(=´▽`=)ﾉ</p>
<h3>■ソース</h3>
<p>基本的には前回と同じコードを利用している。</p>
<pre class="brush: jscript;">
&lt;p ondragstart=&quot;dragstart(event)&quot; ondragenter=&quot;dragenter(event);&quot; ondragover=&quot;dragover(event);&quot; ondrop=&quot;drop(event);&quot;&gt;You drop some images, here!&lt;/p&gt;
&lt;div id=&quot;preview&quot;&gt;&lt;/div&gt;
</pre>
<p>次にJavaScriptコード。</p>
<pre class="brush: jscript;">
function dragStart(e){
    //e.preventDefault();
}
function dragEnter(e){
    //e.preventDefault();
}
function dragOver(e){
    e.preventDefault();
}
function drop(e){
    var files = e.dataTransfer.files;
    for(var i = 0; i &lt; files.length; i++){
        var request = new XMLHttpRequest();
        request.upload.onprogress = function(e){
            document.getElementById('progress').style.width = ((e.loaded / e.total) * 100 + &quot;%&quot;);
        }
        request.upload.onload = function(e){
            document.getElementById('progress').style.width = '0px';
            alert('finished');
        }
        request.open('post', &quot;./index.html&quot;);
        request.send(files[i]);
    }
    e.preventDefault();
}
</pre>
<h4>ファイルアップロード部分</h4>
<p>onprogressで進捗を把握できる。e.loadedはアップロードを行った容量で、e.totalは全体のアップロード容量である。</p>
<pre class="brush: jscript;">
var request = new XMLHttpRequest();
request.upload.onprogress = function(e){
    document.getElementById('progress').style.width = ((e.loaded / e.total) * 100 + &quot;%&quot;);
}
</pre>
<p>onload でアップロードの完了を取得できる。</p>
<pre class="brush: jscript;">
request.upload.onload = function(e){
    document.getElementById('progress').style.width = '0px';
    alert('finished');
}
request.open('post', &quot;./index.html&quot;);
request.send(files[i]);
</pre>
<h4>Chromeについて</h4>
<blockquote><p>You can work around this by uploading the file via xmlhttprequest, maybe.  I don&#8217;t<br />
think Chrome has yet implemented the necessary HTML5 APIs for doing this yet,<br />
unfortunately (they&#8217;re called FileStreams I think).</p></blockquote>
<p>まだ<a href="http://code.google.com/p/chromium/issues/detail?id=45196">サポートしていないんじゃないか</a>？と言ってるみたいだ。</p>
<blockquote><p>WorkersからのDatabaseへのアクセスや，File API，XMLHttpRequestのFormData送信サポートなどはChrome 5での対応からChrome 6への対応に先送りされています</p></blockquote>
<p>やっぱり<a href="http://gihyo.jp/dev/column/01/browser/chrome5">File APIへの対応はChrome6以降</a>になったらしい。残念。</p>
<p><a href="http://www.chromium.org/developers/web-platform-status#TOC-File-API">Web Platform Status</a></p>
<p>マイルストーン6で対応ですな=3</p>
<h3>■サンプル</h3>
<p>Firefox3.6以降でないと動かないですが、10MB以下のファイルを点線の中にドロップしてください。</p>
<p id="droppable20100613" style="border:5px dotted #cccccc;padding:1.5em;border-radius:10px;-moz-border-radius:10px;-webkitborder-radius:10px;">You drop some files, here!</p>
<p id="progress20100613" style="width:0;height:10px;background-color:blue">
<p><script type="text/javascript">
jQuery(function(){
    document.getElementById('droppable20100613').ondragover = function(e){
        e.preventDefault();
    };
    document.getElementById('droppable20100613').ondrop = function(e){
        var files = e.dataTransfer.files;
        for(var i = 0; i < files.length; i++){
            if(files[i].size > 1024 * 1024 * 10){continue;}
            var request = new XMLHttpRequest();
            request.upload.onprogress = function(e){
                document.getElementById('progress20100613').style.width = ((e.loaded / e.total) * 100 + "%");
            }
            request.upload.onload = function(e){
                document.getElementById('progress20100613').style.width = '0px';
                alert('finished');
            }
            request.open('post', "/readme.html");
            request.send(files[i]);
        }
        e.preventDefault();
    };
});
</script></p>
<div class="kakomi">
<h5>おまけ</h5>
<p>jQuery1.4.2のbindを使うと、eventオブジェクトのプロパティdataTransferは、コールバック関数の引数のeventオブジェクトでは受け取れないようだ。従って、以下のコードは使えない。</p>
<pre class="brush: jscript;">
$(elm).bind(
    'drop',
    function(e){
        e.preventDefault();
        var files = e.dataTransfer.files;
        for(var i = 0; i &lt; files.length; i++){
            var request = new XMLHttpRequest();
            request.upload.onprogress = function(e){
                document.getElementById('progress').style.width = ((e.loaded / e.total) * 100 + &quot;%&quot;);
            }
            request.upload.onload = function(e){
                document.getElementById('progress').style.width = '0px';
                alert('finished');
            }
            request.open('post', &quot;./index.html&quot;);
            request.send(files[i]);
        }
        e.preventDefault();
    }
);
</pre>
<p>以下のようにaddEventListenerを使用すれば良い。</p>
<pre class="brush: jscript;">
elm.addEventListener(
    'drop',
    function(e){
        e.preventDefault();
        var files = e.dataTransfer.files;
        for(var i = 0; i &lt; files.length; i++){
            var request = new XMLHttpRequest();
            request.upload.onprogress = function(e){
                document.getElementById('progress').style.width = ((e.loaded / e.total) * 100 + &quot;%&quot;);
            }
            request.upload.onload = function(e){
                document.getElementById('progress').style.width = '0px';
                alert('finished');
            }
            request.open('post', &quot;./index.html&quot;);
            request.send(files[i]);
        }
        e.preventDefault();
    },
    false
);
</pre>
<p>さらにdropだけでなく、input type=&#8221;file&#8221;のchangeにもハンドリング可能だ。</p>
<pre class="brush: jscript;">
elm.addEventListener(
    'change',
    function(e){
        e.preventDefault();
        var files = e.dataTransfer.files;
        for(var i = 0; i &lt; files.length; i++){
            var request = new XMLHttpRequest();
            request.upload.onprogress = function(e){
                document.getElementById('progress').style.width = ((e.loaded / e.total) * 100 + &quot;%&quot;);
            }
            request.upload.onload = function(e){
                document.getElementById('progress').style.width = '0px';
                alert('finished');
            }
            request.open('post', &quot;./index.html&quot;);
            request.send(files[i]);
        }
        e.preventDefault();
    },
    false
);
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2010/06/13/%e3%82%82%e3%81%a3%e3%81%a8file-api%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6xmlhttprequest%e3%81%a8%e7%b5%84%e3%81%bf%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>File APIとドラッグ&amp;ドロップを組み合わせてみる</title>
		<link>http://blog.justoneplanet.info/2010/06/07/file-api%e3%81%a8%e3%83%89%e3%83%a9%e3%83%83%e3%82%b0%e3%83%89%e3%83%ad%e3%83%83%e3%83%97%e3%82%92%e7%b5%84%e3%81%bf%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://blog.justoneplanet.info/2010/06/07/file-api%e3%81%a8%e3%83%89%e3%83%a9%e3%83%83%e3%82%b0%e3%83%89%e3%83%ad%e3%83%83%e3%83%97%e3%82%92%e7%b5%84%e3%81%bf%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 19:38:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML(XHTML)]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=2598</guid>
		<description><![CDATA[HTML5では、ユーザが選択したファイルにJavaScriptからアクセスできるようになったヽ(*ﾟ▽ﾟ)ﾉ
■ソース
イベントハンドラが気に入らないけどまぁ。

&#60;p ondragstart=&#34;drag [...]]]></description>
			<content:encoded><![CDATA[<p>HTML5では、ユーザが選択したファイルにJavaScriptからアクセスできるようになったヽ(*ﾟ▽ﾟ)ﾉ</p>
<h3>■ソース</h3>
<p>イベントハンドラが気に入らないけどまぁ。</p>
<pre class="brush: jscript;">
&lt;p ondragstart=&quot;dragstart(event)&quot; ondragenter=&quot;dragenter(event);&quot; ondragover=&quot;dragover(event);&quot; ondrop=&quot;drop(event);&quot;&gt;You drop some images, here!&lt;/p&gt;
&lt;div id=&quot;preview&quot;&gt;&lt;/div&gt;
</pre>
<h4>JavaScript</h4>
<p>グローバルに書くのが気に入らないけどまぁ。基本的な動作としてブラウザにファイルがドロップされるとブラウザはファイルを元の動作で処理しようとする。つまりJavaScriptに処理を渡すようにはなっていないので、e.preventDefault()でデフォルトのイベントを実行させないようにする。</p>
<pre class="brush: jscript;">
function dragStart(e){
    //e.preventDefault();
}
function dragEnter(e){
    //e.preventDefault();
}
function dragOver(e){
    e.preventDefault();
}
function drop(e){
    var files = e.dataTransfer.files;
    for(var i = 0; i &lt; files.length; i++){
        if(files[i].type.match(/image\/[a-z]/i)){
            var reader = new FileReader();
            var img = document.createElement('img');
            img.src   = reader.result;
            img.width = 300;
            document.getElementById('preview').appendChild(img);
            reader.onloadend = (function(img){
                return function(e){
                    img.src = e.target.result;
                }
            })(img);
            reader.readAsDataURL(files[i]);
        }
    }
    e.preventDefault();
}
</pre>
<p>Firefoxで動作確認。</p>
<h4>Chromeについて</h4>
<p>まだファイルの内容を読み込んだりは<a href="http://code.google.com/p/chromium/issues/detail?id=37785">出来ないらしい</a>。</p>
<blockquote><p>Chrome has partial support for this. In the test file I&#8217;ve attached, I can select a<br />
file via the &#8220;Choose File&#8221; button and get metadata about it: its name, size and<br />
type. However, I cannot read the contents of the file.</p></blockquote>
<p>「部分的にサポートしているが内容の読み込みは出来ない」とのこと。まぁ、そのうち。</p>
<h3>■サンプル</h3>
<p>画像ファイルを点線の中にドロップしてください。</p>
<p id="droppable20100607" style="border:5px dotted #cccccc;padding:1.5em;border-radius:10px;-moz-border-radius:10px;-webkitborder-radius:10px;">You drop some images, here!</p>
<div id="preview"></div>
<p><script type="text/javascript">
jQuery(function(){
    document.getElementById('droppable20100607').ondragover = function(e){
        e.preventDefault();
    };
    document.getElementById('droppable20100607').ondrop = function(e){
        var files = e.dataTransfer.files;
        for(var i = 0; i < files.length; i++){
            if(files[i].type.match(/image\/[a-z]/i)){
                var reader = new FileReader();
                var img = document.createElement('img');
                img.src   = reader.result;
                img.width = 300;
                document.getElementById('preview').appendChild(img);
                reader.onloadend = (function(img){
                    return function(e){
                        img.src = e.target.result;
                    }
                })(img);
                reader.readAsDataURL(files[i]);
            }
        }
        e.preventDefault();
    };
});
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2010/06/07/file-api%e3%81%a8%e3%83%89%e3%83%a9%e3%83%83%e3%82%b0%e3%83%89%e3%83%ad%e3%83%83%e3%83%97%e3%82%92%e7%b5%84%e3%81%bf%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>リッチテキスト編集用APIを使ってみる</title>
		<link>http://blog.justoneplanet.info/2010/06/07/%e3%83%aa%e3%83%83%e3%83%81%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e7%b7%a8%e9%9b%86%e7%94%a8api%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://blog.justoneplanet.info/2010/06/07/%e3%83%aa%e3%83%83%e3%83%81%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e7%b7%a8%e9%9b%86%e7%94%a8api%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 17:42:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML(XHTML)]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=2592</guid>
		<description><![CDATA[HTML5ではtinyMCEのような事が簡単にできる。
■編集
まずは以下のようにする。

&#60;div contenteditable=&#34;true&#34;&#62;編集&#60;/div&#62;

サンプル [...]]]></description>
			<content:encoded><![CDATA[<p>HTML5ではtinyMCEのような事が簡単にできる。</p>
<h3>■編集</h3>
<p>まずは以下のようにする。</p>
<pre class="brush: xml;">
&lt;div contenteditable=&quot;true&quot;&gt;編集&lt;/div&gt;
</pre>
<h4>サンプル</h4>
<p contenteditable="true">ただのp要素なのに、文字を入れたり、編集できますよー</p>
<pre class="brush: xml;">
&lt;body contenteditable=&quot;true&quot;&gt;
&lt;p&gt;編集&lt;/p&gt;
&lt;/div&gt;
</pre>
<p>上述のようにbodyに対しても可能である。</p>
<h3>■装飾</h3>
<p>以下のようにすると、編集可能領域において選択範囲を太字にできる。</p>
<pre class="brush: xml;">
document.execCommand('bold', false, false);
</pre>
<h4>サンプル</h4>
<input type="button" value="bold" onclick="document.execCommand('bold', false, false);" />
<input type="button" value="delete" onclick="document.execCommand('delete', false, false);" />
<p contenteditable="true" id="editor20100607">ただのp要素なのに、文字を入れたり、編集できますよー</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2010/06/07/%e3%83%aa%e3%83%83%e3%83%81%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e7%b7%a8%e9%9b%86%e7%94%a8api%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>canvasを使用する</title>
		<link>http://blog.justoneplanet.info/2010/04/25/canvas%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.justoneplanet.info/2010/04/25/canvas%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 21:58:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML(XHTML)]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=2452</guid>
		<description><![CDATA[■HTML
以下のようにcanvas要素を置く。

&#60;canvas id=&#34;canvas&#34; width=&#34;500&#34; height=&#34;500&#34;&#62;&#038;lt [...]]]></description>
			<content:encoded><![CDATA[<h3>■HTML</h3>
<p>以下のようにcanvas要素を置く。</p>
<pre class="brush: xml;">
&lt;canvas id=&quot;canvas&quot; width=&quot;500&quot; height=&quot;500&quot;&gt;&lt;/canvas&gt;
</pre>
<p>widthとheightの指定には属性を使用する。</p>
<h3>■JavaScript</h3>
<p>canvasを使う準備。</p>
<pre class="brush: jscript;">
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
</pre>
<h4>円を書いてみる。</h4>
<pre class="brush: jscript;">
context.fillStyle = 'red';
context.arc(20, 20, 10, 0, Math.PI * 2, false);
context.fill();
</pre>
<p>以下のようになる。</p>
<p><canvas id="canvas2010042501" width="500" height="50" style="z-index:100"></canvas><br />
<script type="text/javascript">(function(){var canvas = document.getElementById('canvas2010042501');var context = canvas.getContext('2d');context.fillStyle = 'red';context.arc(20, 20, 10, 0, Math.PI * 2, false);context.fill();})();</script></p>
<h4>四角形を書く。</h4>
<pre class="brush: jscript;">
context.strokeRect(10, 20, 10, 20);
context.fillStyle = 'red';
context.fillRect(50, 20, 10, 20);
</pre>
<p>以下のようになる。</p>
<p><canvas id="canvas2010042502" width="500" height="50" style="z-index:100"></canvas><br />
<script type="text/javascript">(function(){var canvas = document.getElementById('canvas2010042502');var context = canvas.getContext('2d');context.strokeRect(10, 20, 10, 20);context.fillStyle = 'red';context.fillRect(50, 20, 10, 20);})();;</script></p>
<h4>線を書いてみる。</h4>
<p>以下のようになる。</p>
<pre class="brush: jscript;">
context.beginPath();
context.moveTo(0, 0);
context.lineTo(100, 20);
context.stroke();
</pre>
<p>味気ない。味気ない。</p>
<p><canvas id="canvas2010042503" width="500" height="50" style="z-index:100"></canvas><br />
<script type="text/javascript">(function(){var canvas = document.getElementById('canvas2010042503');var context = canvas.getContext('2d');context.beginPath();context.moveTo(0, 0);context.lineTo(100, 20);context.stroke();})();</script></p>
<h4>曲線を書いてみる。</h4>
<p>以下のようになる。</p>
<pre class="brush: jscript;">
context.beginPath();
context.moveTo(0, 0);
context.quadraticCurveTo(500, 20, 300, 50);
context.stroke();
</pre>
<p>第一引数と第二引数で引っ張るイメージだ。</p>
<p><canvas id="canvas2010042504" width="500" height="50" style="z-index:100"></canvas><br />
<script type="text/javascript">(function(){var canvas = document.getElementById('canvas2010042504');var context = canvas.getContext('2d');context.beginPath();context.moveTo(0, 0);context.quadraticCurveTo(500, 20, 300, 50);context.stroke();})();</script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2010/04/25/canvas%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>microformat</title>
		<link>http://blog.justoneplanet.info/2009/12/27/microformat/</link>
		<comments>http://blog.justoneplanet.info/2009/12/27/microformat/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 21:51:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML(XHTML)]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=2195</guid>
		<description><![CDATA[検索のリッチ化が進む中、GoogleはRDFaとmicroformatに対応した。RDFaやmicroformatが埋め込まれたサイトでは検索結果が以下のように表示される。

■hCard（vCard）
人物に関する情報 [...]]]></description>
			<content:encoded><![CDATA[<p>検索のリッチ化が進む中、GoogleはRDFaとmicroformatに対応した。RDFaやmicroformatが埋め込まれたサイトでは検索結果が以下のように表示される。</p>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/12/capture.png" rel="lightbox[2195]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/12/capture-300x62.png" alt="リッチスニペット" title="リッチスニペット" width="300" height="62" /></a></p>
<h3>■hCard（vCard）</h3>
<p>人物に関する情報を記述する。</p>
<pre class="brush: xml;">
&lt;div class=&quot;vcard&quot;&gt;
&lt;img class=&quot;photo&quot; src=&quot;/wp-content/uploads/2009/12/1261861644_user_48.png&quot; /&gt;
&lt;p&gt;&lt;strong class=&quot;fn&quot;&gt;Mitsuaki Sample&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;org&quot;&gt;Nutex Inc.&lt;/span&gt;:&lt;span class=&quot;title&quot;&gt;Engineer&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;adr&quot;&gt;
&lt;span class=&quot;postcode&quot;&gt;141-0022&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;region&quot;&gt;東京都&lt;/span&gt;&lt;span class=&quot;locality&quot;&gt;品川区&lt;/span&gt;
&lt;span class=&quot;street-address&quot;&gt;東五反田2-8-8&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
</pre>
<table>
<tr>
<th>name(fn)</th>
<td>名前</td>
</tr>
<tr>
<th>photo</th>
<td>写真</td>
</tr>
<tr>
<th>url</th>
<td>URL</td>
</tr>
<tr>
<th>org</th>
<td>組織</td>
</tr>
<tr>
<th>title</th>
<td>役職</td>
</tr>
<tr>
<th>role</th>
<td>役割</td>
</tr>
<tr>
<th>adr</th>
<td>住所</td>
</tr>
<tr>
<th>＞postcode</th>
<td>郵便番号</td>
</tr>
<tr>
<th>＞region</th>
<td>都道府県</td>
</tr>
<tr>
<th>＞locality</th>
<td>市町村</td>
</tr>
<tr>
<th>＞street-address</th>
<td>番地</td>
</tr>
</table>
<div class="vcard kakomi">
<h4>サンプル</h4>
<p><img class="photo" src="/wp-content/uploads/2009/12/1261861644_user_48.png" /></p>
<p><strong class="fn">Mitsuaki Sample</strong></p>
<p><span class="org">Nutex Inc.</span>:<span class="title">Programmer</span></p>
<p><span class="adr"><span class="postcode">1410022</span><br />
<span class="region">東京都</span><span class="locality">品川区</span><span class="street-address">東五反田2-8-8</span><br />
</span></p>
</div>
<p>会社（組織情報）だと以下のようになる。</p>
<pre class="brush: xml;">
&lt;div class=&quot;vcard&quot;&gt;
&lt;dt&gt;&lt;span class=&quot;fn org&quot;&gt;株式会社Nutex&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;span class=&quot;url&quot;&gt;http://nutex.jp&lt;/span&gt;&lt;/dd&gt;
&lt;dd&gt;&lt;span class=&quot;tel&quot;&gt;03-5422-8684&lt;/span&gt;&lt;/dd&gt;
&lt;dd class=&quot;adr&quot;&gt;&lt;span class=&quot;postal-code&quot;&gt;141-0022&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;region&quot;&gt;東京都&lt;/span&gt;&lt;span class=&quot;locality&quot;&gt;品川区&lt;/span&gt;&lt;span class=&quot;street-address&quot;&gt;東五反田2-8-8&lt;/span&gt;&lt;/dd&gt;
&lt;/div&gt;
</pre>
<div class="vcard kakomi">
<h4>サンプル</h4>
<dt><span class="fn org">株式会社Nutex</span></dt>
<dd><span class="url">http://nutex.jp</span></dd>
<dd><span class="tel">03-5422-8684</span></dd>
<dd class="adr"><span class="postal-code">141-0022</span><br />
<span class="region">東京都</span><span class="locality">品川区</span><span class="street-address">東五反田2-8-8</span></dd>
</div>
<h3>■hReview</h3>
<p>レビュー情報を記述する。</p>
<pre class="brush: xml;">
&lt;div class=&quot;hreview&quot;&gt;
&lt;p&gt;&lt;span class=&quot;item&quot;&gt;&lt;strong&gt;&lt;span class=&quot;fn&quot;&gt;NutexのCMS&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; - Score:&lt;strong&gt;&lt;span class=&quot;rating&quot;&gt;4.0&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;summary&quot;&gt;凄く使いやすい。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;written by &lt;span class=&quot;reviewer&quot;&gt;Mitsuaki Sample&lt;/span&gt;(&lt;span class=&quot;dtreviewed&quot;&gt;2009-12-20&lt;/span&gt;)&lt;/p&gt;
&lt;/div&gt;
</pre>
<table>
<tr>
<th>item</th>
<td>対象アイテム</td>
</tr>
<tr>
<th>＞name(fn)</th>
<td>名前</td>
</tr>
<tr>
<th>rating</th>
<td>評価点</td>
</tr>
<tr>
<th>reviewer</th>
<td>評価した人</td>
</tr>
<tr>
<th>dtreviewed</th>
<td>評価した日時</td>
</tr>
<tr>
<th>summary</th>
<td>レビュー概要</td>
</tr>
<tr>
<th>description</th>
<td>レビュー本文</td>
</tr>
</table>
<div class="hreview kakomi">
<h4>サンプル</h4>
<p><span class="item"><strong><span class="fn">NutexのCMS</span></strong></span> &#8211; Score:<strong><span class="rating">4.0</span></strong></p>
<p><span class="summary">凄く使いやすい。</span></p>
<p>written by <span class="reviewer">Mitsuaki Sample</span>(<span class="dtreviewed">2009-12-20</span>)</p>
</div>
<h3>■hProduct</h3>
<p>製品情報を記述する。</p>
<pre class="brush: xml;">
&lt;div class=&quot;hproduct&quot;&gt;
&lt;h5&gt;&lt;span class=&quot;fn&quot;&gt;Rabit&lt;/span&gt;(&lt;span class=&quot;url&quot;&gt;http://nutex.jp&lt;/span&gt;)&lt;/h5&gt;
&lt;p&gt;&lt;span class=&quot;price&quot;&gt;\100&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;ta-center&quot;&gt;&lt;span class=&quot;photo&quot;&gt;&lt;img src=&quot;http://blog.justoneplanet.info/wp-content/uploads/2009/12/1261863826_computer.png&quot; alt=&quot;cms&quot; width=&quot;128&quot; height=&quot;128&quot; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;description&quot;&gt;簡単CMS。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Brand: &lt;span class=&quot;brand&quot;&gt;Nutex&lt;/span&gt; - Category: &lt;span class=&quot;category&quot;&gt;CMS&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
</pre>
<table>
<tr>
<th>name(fn)</th>
<td>製品名</td>
</tr>
<tr>
<th>price</th>
<td>値段</td>
</tr>
<tr>
<th>photo</th>
<td>製品写真</td>
</tr>
<tr>
<th>url</th>
<td>製品ページ</td>
</tr>
<tr>
<th>description</th>
<td>製品説明</td>
</tr>
<tr>
<th>brand</th>
<td>ブランド</td>
</tr>
<tr>
<th>category</th>
<td>カテゴリ</td>
</tr>
</table>
<div class="hproduct kakomi">
<h4>サンプル</h4>
<h5><span class="fn">Rabit</span>(<span class="url">http://nutex.jp</span>)</h5>
<p><span class="price">\100</span></p>
<p class="ta-center"><span class="photo"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/12/1261863826_computer.png" alt="cms" width="128" height="128" /></span></p>
<p><span class="description">簡単CMS。</span></p>
<p>Brand: <span class="brand">Nutex</span> &#8211; Category: <span class="category">CMS</span></p>
</div>
<h3>■応用</h3>
<p>レビュー情報と製品情報を組み合わせる。</p>
<pre class="brush: xml;">
&lt;div class=&quot;hreview&quot;&gt;
&lt;div class=&quot;item hproduct&quot;&gt;
&lt;h5&gt;&lt;span class=&quot;fn&quot;&gt;Rabit&lt;/span&gt;(&lt;span class=&quot;url&quot;&gt;http://nutex.jp&lt;/span&gt;)&lt;/h5&gt;
&lt;p&gt;&lt;span class=&quot;price&quot;&gt;\100&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;ta-center&quot;&gt;&lt;span class=&quot;photo&quot;&gt;&lt;img src=&quot;http://blog.justoneplanet.info/wp-content/uploads/2009/12/1261863826_computer.png&quot; alt=&quot;cms&quot; width=&quot;128&quot; height=&quot;128&quot; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;description&quot;&gt;簡単CMS。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Brand: &lt;span class=&quot;brand&quot;&gt;Nutex&lt;/span&gt; - Category: &lt;span class=&quot;category&quot;&gt;CMS&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span class=&quot;summary&quot;&gt;凄く使いやすい。&lt;/span&gt; - Score:&lt;strong&gt;&lt;span class=&quot;rating&quot;&gt;4.0&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;written by &lt;span class=&quot;reviewer&quot;&gt;Mitsuaki Sample&lt;/span&gt;(&lt;span class=&quot;dtreviewed&quot;&gt;2009-12-20&lt;/span&gt;)&lt;/p&gt;
&lt;/div&gt;
</pre>
<div class="hreview kakomi">
<h4>サンプル</h4>
<div class="item hproduct">
<h5><span class="fn">Rabit</span>(<span class="url">http://nutex.jp</span>)</h5>
<p><span class="price">\100</span></p>
<p class="ta-center"><span class="photo"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/12/1261863826_computer.png" alt="cms" width="128" height="128" /></span></p>
<p><span class="description">簡単CMS。</span></p>
<p>Brand: <span class="brand">Nutex</span> &#8211; Category: <span class="category">CMS</span></p>
</div>
<p><span class="summary">凄く使いやすい。</span> &#8211; Score:<strong><span class="rating">4.0</span></strong></p>
<p>written by <span class="reviewer">Mitsuaki Sample</span>(<span class="dtreviewed">2009-12-20</span>)</p>
</div>
<h4>参考</h4>
<ul>
<li><a href="http://microformats.org/wiki/hcard-ja">hCard</a></li>
<li><a href="http://microformats.org/wiki/hreview-ja">hReview</a></li>
<li><a href="http://microformats.org/wiki/hproduct">hProduct</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2009/12/27/microformat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>チェックボックスの使い方</title>
		<link>http://blog.justoneplanet.info/2009/12/25/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%83%9c%e3%83%83%e3%82%af%e3%82%b9%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9/</link>
		<comments>http://blog.justoneplanet.info/2009/12/25/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%83%9c%e3%83%83%e3%82%af%e3%82%b9%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 17:31:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML(XHTML)]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=2180</guid>
		<description><![CDATA[以下のコードよりも &#60;ul&#62; &#60;li&#62;&#60;input type=&#34;checkbox&#34; name=&#34;check[]&#34; value=&#34;1&#34; /&#62;1&#60;/li&#62; &#60;li&#62;&#60;input type=&#34;checkbox&#34; name=&#34;check[]&#34; value=&#34;2&#34; /&#62;2&#60;/li&#62; &#60;li&#62;&#60;input type=&#34;checkbox&#34; name=&#34;check[]&#34; value=&#34;3&#34; /&#62;3&#60;/li&#62; &#60;li&#62;&#60;input type=&#34;checkbox&#34; name=&#34;check[]&#34; value=&#34;4&#34; /&#62;4&#60;/li&#62; &#60;li&#62;&#60;input type=&#34;checkbox&#34; name=&#34;check[]&#34; value=&#34;5&#34; /&#62;5&#60;/li&#62; &#60;/ul&#62; array(1) { [&#34;check&#34;]=&#62; array(2) { [0]=&#62; string(1) &#34;2&#34; [1]=&#62; string(1) &#34;4&#34; } } 以下のコードの方が &#60;ul&#62; &#60;li&#62;&#60;input type=&#34;checkbox&#34; name=&#34;check[1]&#34; value=&#34;1&#34; /&#62;1&#60;/li&#62; &#60;li&#62;&#60;input type=&#34;checkbox&#34; name=&#34;check[2]&#34; value=&#34;1&#34; /&#62;2&#60;/li&#62; &#60;li&#62;&#60;input type=&#34;checkbox&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>以下のコードよりも</p>
<pre class="brush: xml;">
&lt;ul&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[]&quot; value=&quot;1&quot; /&gt;1&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[]&quot; value=&quot;2&quot; /&gt;2&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[]&quot; value=&quot;3&quot; /&gt;3&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[]&quot; value=&quot;4&quot; /&gt;4&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[]&quot; value=&quot;5&quot; /&gt;5&lt;/li&gt;
&lt;/ul&gt;
</pre>
<pre class="brush: php;">
array(1) {
  [&quot;check&quot;]=&gt;
  array(2) {
    [0]=&gt;
    string(1) &quot;2&quot;
    [1]=&gt;
    string(1) &quot;4&quot;
  }
}
</pre>
<p>以下のコードの方が</p>
<pre class="brush: xml;">
&lt;ul&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[1]&quot; value=&quot;1&quot; /&gt;1&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[2]&quot; value=&quot;1&quot; /&gt;2&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[3]&quot; value=&quot;1&quot; /&gt;3&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[4]&quot; value=&quot;1&quot; /&gt;4&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[5]&quot; value=&quot;1&quot; /&gt;5&lt;/li&gt;
&lt;/ul&gt;
</pre>
<pre class="brush: php;">
array(1) {
  [&quot;check&quot;]=&gt;
  array(2) {
    [2]=&gt;
    string(1) &quot;1&quot;
    [4]=&gt;
    string(1) &quot;1&quot;
  }
}
</pre>
<p>なんか好きだ。</p>
<p>ちなみにvalue属性が無かったときは</p>
<pre class="brush: xml;">
&lt;ul&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[1]&quot; /&gt;1&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[2]&quot; /&gt;2&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[3]&quot; /&gt;3&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[4]&quot; /&gt;4&lt;/li&gt;
&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;check[5]&quot; /&gt;5&lt;/li&gt;
&lt;/ul&gt;
</pre>
<pre class="brush: php;">
array(1) {
  [&quot;check&quot;]=&gt;
  array(2) {
    [2]=&gt;
    string(2) &quot;on&quot;
    [4]=&gt;
    string(2) &quot;on&quot;
  }
}
</pre>
<p>『on』という文字列が入る。（IE6～8,FF）</p>
<h3>■参考</h3>
<p><a href="http://www.w3.org/TR/html4/interact/forms.html#form-controls">17.2 Controls</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2009/12/25/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%83%9c%e3%83%83%e3%82%af%e3%82%b9%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modernizrにjsを追記して簡単にHTML5やCSS3の対応を確認する</title>
		<link>http://blog.justoneplanet.info/2009/11/22/modernizr%e3%81%abjs%e3%82%92%e8%bf%bd%e8%a8%98%e3%81%97%e3%81%a6%e7%b0%a1%e5%8d%98%e3%81%abhtml5%e3%82%84css3%e3%81%ae%e5%af%be%e5%bf%9c%e3%82%92%e7%a2%ba%e8%aa%8d%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.justoneplanet.info/2009/11/22/modernizr%e3%81%abjs%e3%82%92%e8%bf%bd%e8%a8%98%e3%81%97%e3%81%a6%e7%b0%a1%e5%8d%98%e3%81%abhtml5%e3%82%84css3%e3%81%ae%e5%af%be%e5%bf%9c%e3%82%92%e7%a2%ba%e8%aa%8d%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 14:54:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML(XHTML)]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=2144</guid>
		<description><![CDATA[以下を先頭に書く。

javascript:

Modernizrのソースを次にペーストしたら以下のソースを書く。

(function(obj){
	var txt = '';
	for(var i in obj){
 [...]]]></description>
			<content:encoded><![CDATA[<p>以下を先頭に書く。</p>
<pre class="brush: xml;">
javascript:
</pre>
<p>Modernizrのソースを次にペーストしたら以下のソースを書く。</p>
<pre class="brush: jscript;">
(function(obj){
	var txt = '';
	for(var i in obj){
		txt += i + ' : ' + obj[i] + '\n';
	}
	alert(txt);
})(window.Modernizr);
</pre>
<p>そうするとHTML5への対応やCSS3への対応がアラートされる。</p>
<p class="ta-center"><a href="http://blog.justoneplanet.info/wp-content/uploads/2009/11/capture11.png" rel="lightbox[2144]"><img src="http://blog.justoneplanet.info/wp-content/uploads/2009/11/capture11-193x299.png" alt="Modernizr" title="Modernizr" width="193" height="299" /></a></p>
<p>頻繁に対応状況が変わるわけでないので無駄な作業な気がした。(´＿｀｡)</p>
<h3>■参考</h3>
<p><a href="http://www.modernizr.com/">http://www.modernizr.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2009/11/22/modernizr%e3%81%abjs%e3%82%92%e8%bf%bd%e8%a8%98%e3%81%97%e3%81%a6%e7%b0%a1%e5%8d%98%e3%81%abhtml5%e3%82%84css3%e3%81%ae%e5%af%be%e5%bf%9c%e3%82%92%e7%a2%ba%e8%aa%8d%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ブラウザから位置情報を取得する</title>
		<link>http://blog.justoneplanet.info/2009/11/22/%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%8b%e3%82%89%e4%bd%8d%e7%bd%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.justoneplanet.info/2009/11/22/%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%8b%e3%82%89%e4%bd%8d%e7%bd%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 13:54:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML(XHTML)]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.justoneplanet.info/?p=2138</guid>
		<description><![CDATA[Geolocation APIを利用して取得。実装していないブラウザの為にGoogle Gearsを使用しても取得できる。
■Gears
使う準備をする。以下を書くだけで良い。

&#60;script type=&#038;quo [...]]]></description>
			<content:encoded><![CDATA[<p>Geolocation APIを利用して取得。実装していないブラウザの為にGoogle Gearsを使用しても取得できる。</p>
<h3>■Gears</h3>
<p>使う準備をする。以下を書くだけで良い。</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.google.com/intl/ja/apis/gears/gears_init.js&quot;&gt;&lt;/script&gt;
</pre>
<h3>■ソースコード</h3>
<pre class="brush: jscript;">
if(navigator.geolocation) {
	alert('geolocation');
	navigator.geolocation.getCurrentPosition(
		function(position){
			alert(position.coords.latitude + ',' + position.coords.longitude)
		},
		function(error){
			switch(error.code){
				case error.PERMISSION_DENIED :
					alert('Forbidden to use the Geolocation API.');
					break;
				case error.POSITION_UNAVAILABLE :
					alert('Location providers reported an internal error.');
					break;
				case error.TIMEOUT :
					alert('Timeout.');
					break;
				case error.UNKNOWN_ERROR :
				default :
					alert('Failed due to an unknown error.');
					break;
			}
		}
	);
}
else if(typeof google != 'undefined' &amp;&amp; typeof google.gears != 'undefined'){
	alert('gears');
	google.gears.factory.create('beta.geolocation').getCurrentPosition(
		function(position){
			alert(position.coords.latitude + ',' + position.coords.longitude)
		},
		function(error){
			alert('error : ' + error.message);
		}
	);
}
else{
	alert('sorry');
}
</pre>
<p>Chrome LiteはGearsを搭載しているのでandroidでも位置情報が取得できる。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2009/11/22/%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%8b%e3%82%89%e4%bd%8d%e7%bd%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>マウスオーバーで表示される画像のalt属性を見えないようにしよう</title>
		<link>http://blog.justoneplanet.info/2008/03/04/%e3%83%9e%e3%82%a6%e3%82%b9%e3%82%aa%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a7%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%82%8b%e7%94%bb%e5%83%8f%e3%81%aealt%e5%b1%9e%e6%80%a7%e3%82%92%e8%a6%8b%e3%81%88/</link>
		<comments>http://blog.justoneplanet.info/2008/03/04/%e3%83%9e%e3%82%a6%e3%82%b9%e3%82%aa%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a7%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%82%8b%e7%94%bb%e5%83%8f%e3%81%aealt%e5%b1%9e%e6%80%a7%e3%82%92%e8%a6%8b%e3%81%88/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 15:23:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML(XHTML)]]></category>

		<guid isPermaLink="false">http://justoneplanet.sakura.ne.jp/wordpress/2008/03/04/%e3%83%9e%e3%82%a6%e3%82%b9%e3%82%aa%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a7%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%82%8b%e7%94%bb%e5%83%8f%e3%81%aealt%e5%b1%9e%e6%80%a7%e3%82%92%e8%a6%8b%e3%81%88/</guid>
		<description><![CDATA[■結論
 imgタグにtitle=&#8221;"と属性を加えてあげる
■注意

altを書かないのは、アクセシビリティの観点、SEOの観点から見て好ましくない
altをツールチップとして表示するのはInternetEx [...]]]></description>
			<content:encoded><![CDATA[<h4>■結論</h4>
<p> imgタグにtitle=&#8221;"と属性を加えてあげる</p>
<h4>■注意</h4>
<ul>
<li>altを書かないのは、アクセシビリティの観点、SEOの観点から見て好ましくない</li>
<li>altをツールチップとして表示するのはInternetExplorerだけである</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.justoneplanet.info/2008/03/04/%e3%83%9e%e3%82%a6%e3%82%b9%e3%82%aa%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a7%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%82%8b%e7%94%bb%e5%83%8f%e3%81%aealt%e5%b1%9e%e6%80%a7%e3%82%92%e8%a6%8b%e3%81%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
