<?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>アストロデオブログ &#187; JavaScript</title>
	<atom:link href="http://astrodeo.com/blog/archives/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://astrodeo.com/blog</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 11 Jul 2011 01:38:11 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>静的HTMLでHTMLファイルを読み込む</title>
		<link>http://astrodeo.com/blog/archives/1650</link>
		<comments>http://astrodeo.com/blog/archives/1650#comments</comments>
		<pubDate>Mon, 11 Jul 2011 01:38:11 +0000</pubDate>
		<dc:creator>マッチー</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=1650</guid>
		<description><![CDATA[PHPでページを生成する場合は、共通部分は別のファイルに作って、そいつをincludeなりrequireなりしてあげれば簡単なんですけど、HTMLファイルの場合はそうはいかない。SSIが使えるサーバーとかだと以下のような記述で読み込めるらしいけど、SSIが使えない場合もたまにはあるわけで、そういうときにどうすればいいか。 //SSIが使える場合 そこでご紹介したいのが、こちらのサイトさん Javascriptを使って、静的HTMLの中でファイルをインクルードするソースを公開されています。 使い方は簡単。上記のサイトにある関数を記述したjsファイルを作成するなりHTML内に書くなりして、あとは必要な部分で関数を呼び出すだけ。 //～内 include("sample.html"); たったこれだけです。ヘッダーとかフッターとか、全ページで共通して表示させるような部分をこれで外部ファイルにしておけば、静的ページの作成も楽になりますね。 今までは、共通部分を一ヶ所直すたびに全ファイルを直すとかいう効率の悪いことをしてたんですけど、今度からはこれで行かせていただこうとを思います。 むしろもっと早くに調べとくんだったよ……バカ。 注：ブラウザによっては動かない場合もあるっぽいです。僕の使ってるOperaでは動かなかった。他にもformが動かないなどの報告もあるみたいなので、運用レベルでの使用ではなく、モックの作成などに活用するのが良いかもしれません。 あるいはこのソースを改良して動くようにするとか、でしょうか。]]></description>
			<content:encoded><![CDATA[<p>PHPでページを生成する場合は、共通部分は別のファイルに作って、そいつをincludeなりrequireなりしてあげれば簡単なんですけど、HTMLファイルの場合はそうはいかない。SSIが使えるサーバーとかだと以下のような記述で読み込めるらしいけど、SSIが使えない場合もたまにはあるわけで、そういうときにどうすればいいか。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

//SSIが使える場合
<!--#include file="sample.html"-->

</textarea>
<p>そこでご紹介したいのが、<a href="http://d.hatena.ne.jp/kenpoco/20080501/1209636103" target="_blank">こちらのサイトさん</a></p>
<p>Javascriptを使って、静的HTMLの中でファイルをインクルードするソースを公開されています。</p>
<p>使い方は簡単。上記のサイトにある関数を記述したjsファイルを作成するなりHTML内に書くなりして、あとは必要な部分で関数を呼び出すだけ。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

//<body>～</body>内
<script>
include("sample.html");
</script>

</textarea>
<p>たったこれだけです。ヘッダーとかフッターとか、全ページで共通して表示させるような部分をこれで外部ファイルにしておけば、静的ページの作成も楽になりますね。</p>
<p>今までは、共通部分を一ヶ所直すたびに全ファイルを直すとかいう効率の悪いことをしてたんですけど、今度からはこれで行かせていただこうとを思います。</p>
<p>むしろもっと早くに調べとくんだったよ……バカ。</p>
<p>注：ブラウザによっては動かない場合もあるっぽいです。僕の使ってるOperaでは動かなかった。他にもformが動かないなどの報告もあるみたいなので、運用レベルでの使用ではなく、モックの作成などに活用するのが良いかもしれません。</p>
<p>あるいはこのソースを改良して動くようにするとか、でしょうか。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/1650/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>違いは何？</title>
		<link>http://astrodeo.com/blog/archives/1547</link>
		<comments>http://astrodeo.com/blog/archives/1547#comments</comments>
		<pubDate>Sun, 21 Nov 2010 18:32:54 +0000</pubDate>
		<dc:creator>oc</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[雑記]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=1547</guid>
		<description><![CDATA[ffftpとwinscpの違い。 違いと言うか二つとも可視的にファイル転送が出来るソフトなのはご周知の事実ですよね。 もの凄くざっくり言うとSSH通信が出来るかどうかが決定的な違い。 使うサーバの設定によって使い分けてるんですね。 次はTeraTerm TeraTermはtelnetクライアントソフトの一つって事か。仲間ってことかな。成程。 UNIXコマンドが使えたらTeraTermを使った方が作業が楽そうと思われ。 今回は直にファイルを編集しないでsqlの結果見ましたが機会があったら挑戦してみよっと。 そしてテストをさせて頂いてて聞いた話ですが IE6でjavascriptが動かない。成程サーチ！ してみると 移動だ！ だと動かない。ので 移動だ！ とfalseを記入すると動く。らしい。 この要素が原因だと嬉しい。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www2.biglobe.ne.jp/~sota/ffftp.html">ffftp</a>と<a href="http://www.tab2.jp/~winscp/">winscp</a>の違い。</p>
<p>違いと言うか二つとも可視的にファイル転送が出来るソフトなのはご周知の事実ですよね。</p>
<p>もの凄くざっくり言うとSSH通信が出来るかどうかが決定的な違い。</p>
<p>使うサーバの設定によって使い分けてるんですね。</p>
<p>次は<a href="http://www.forest.impress.co.jp/lib/inet/servernt/remote/utf8teraterm.html">TeraTerm</a></p>
<p>TeraTermはtelnetクライアントソフトの一つって事か。仲間ってことかな。成程。</p>
<p>UNIXコマンドが使えたらTeraTermを使った方が作業が楽そうと思われ。</p>
<p>今回は直にファイルを編集しないでsqlの結果見ましたが機会があったら挑戦してみよっと。</p>
<p>そしてテストをさせて頂いてて聞いた話ですが</p>
<p>IE6でjavascriptが動かない。成程サーチ！</p>
<p>してみると</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">
<a href="javascript:void(0);" 
onclick="javascript:location.href = 'http://www.example.com';">移動だ！</a>
</textarea>
<p>だと動かない。ので</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">
<a href="javascript:void(0);" 
onclick="javascript:location.href = 'http://www.example.com';return false;">移動だ！</a>
</textarea>
<p>とfalseを記入すると動く。らしい。</p>
<p>この要素が原因だと嬉しい。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/1547/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iphone(gps)で現在地の軽度と緯度を取得</title>
		<link>http://astrodeo.com/blog/archives/1403</link>
		<comments>http://astrodeo.com/blog/archives/1403#comments</comments>
		<pubDate>Mon, 08 Nov 2010 18:24:01 +0000</pubDate>
		<dc:creator>oc</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=1403</guid>
		<description><![CDATA[最近ぐるなびとかのアプリで出てくる「付近」検索。 自分の現在地から見ての情報の取得を調べていたらこんな感じのを・・ 現在の位置情報を表示 lat, lng, accuracy うーん。でも違うぞ・・ 自分自身の経度と緯度を取得してそこから何件か付近のデータを取得したい。 テストあるのみですね。]]></description>
			<content:encoded><![CDATA[<p>最近ぐるなびとかのアプリで出てくる「付近」検索。</p>
<p>自分の現在地から見ての情報の取得を調べていたらこんな感じのを・・</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>

<style type="text/css"><!--
h1 { font-size:16pt; }
--></style>
<script type="text/javascript"><!--
window.onload = function(){
    navigator.geolocation.watchPosition(update);
}
// 位置が検出されたら緯度、経度、誤差と時間を表示
function update(position){
    var lat = position.coords.latitude;
    var lng = position.coords.longitude;
    var acc = position.coords.accuracy;
    document.getElementById("pos").innerHTML = lat+","+lng+","+acc+"<br />"+(new Date());
}
// --></script>
</head>
<body>
<h1>現在の位置情報を表示</h1>
<div id="pos">lat, lng, accuracy</div>
</body>
</html>
</textarea>
<p>うーん。でも違うぞ・・</p>
<p>自分自身の経度と緯度を取得してそこから何件か付近のデータを取得したい。</p>
<p>テストあるのみですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/1403/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ライトボックスのCLOSEボタンの編集</title>
		<link>http://astrodeo.com/blog/archives/1390</link>
		<comments>http://astrodeo.com/blog/archives/1390#comments</comments>
		<pubDate>Sun, 07 Nov 2010 17:46:26 +0000</pubDate>
		<dc:creator>hayachi</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=1390</guid>
		<description><![CDATA[この日の業務はものすごく焦っていましてデレクトリーを変えてしまったせいで ライトボックスのこのCLOSEボタンが出てこなくなってどこで変えたらいいかすこし迷ってしましました。 lightbox.jsの // Configurationl // LightboxOptions = Object.extend({ fileLoadingImage: 'images/images/loading.gif', fileBottomNavCloseImage: 'images/images/closelabel.gif', /*ここでした；；*/ overlayOpacity: 0.8, // controls transparency of shadow overlay animate: true, // toggles resizing animations resizeSpeed: 7, // controls the speed of the image resizing animations (1=slowest and 10=fastest) borderSize: 10, //if you adjust the padding in the CSS, you will need [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://astrodeo.com/blog/archives/1390/%e5%90%8d%e7%a7%b0%e6%9c%aa%e8%a8%ad%e5%ae%9a-1-4" rel="attachment wp-att-1400"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/11/名称未設定-11.jpg" alt="" title="名称未設定-1" width="255" height="69" class="alignleft size-full wp-image-1400" /></a><br />
この日の業務はものすごく焦っていましてデレクトリーを変えてしまったせいで<br />
ライトボックスのこのCLOSEボタンが出てこなくなってどこで変えたらいいかすこし迷ってしましました。</p>
<p>lightbox.jsの</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">
//  Configurationl
//
LightboxOptions = Object.extend({
    fileLoadingImage:        'images/images/loading.gif',     
    fileBottomNavCloseImage: 'images/images/closelabel.gif', /*ここでした；；*/

    overlayOpacity: 0.8,   // controls transparency of shadow overlay

    animate: true,         // toggles resizing animations
    resizeSpeed: 7,        // controls the speed of the image resizing animations (1=slowest and 10=fastest)

    borderSize: 10,         //if you adjust the padding in the CSS, you will need to update this variable

	// When grouping images this is used to write: Image # of #.
	// Change it for non-english localization
	labelImage: "Image",
	labelOf: "of"
}, window.LightboxOptions || {});
</textarea>
<p>焦りはいけないですね；；<br />
もう少し落ち着いて出来るようになりたいです；；</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/1390/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>javascriptの配列の解釈の違い</title>
		<link>http://astrodeo.com/blog/archives/1104</link>
		<comments>http://astrodeo.com/blog/archives/1104#comments</comments>
		<pubDate>Thu, 23 Sep 2010 08:55:17 +0000</pubDate>
		<dc:creator>マッチー</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=1104</guid>
		<description><![CDATA[（突然ですけど）例えばですが、こんな↓配列があったとします。 var myArray = [1,2,3,4,5,]; まあ、何てことない普通の配列なのですが、注目してほしいのは、5の後ろにあるコンマ。 ここにコンマがあると、ブラウザによって配列の要素数が変わって来るようなのです。 実際にこの要素数をアラートしてみれば分かるのですが var myArray = [1,2,3,4,5,]; alert(myArray.length); 上記の場合、FirefoxやOperaだと結果は5が返ってきます。 しかし、IEだと6が返って来るようです。 コンマの後に何もなくても、要素数をカウントしてしまうみたいですね、IEだと。 仕事ではないんですが、ちょっとjQueryのライブラリを使ってお遊びでサイトを作ったりなんかしていまして……で、どうしてもIEでだけjavascriptが思うように動作してくれなくてですね……何でかなぁと3か月くらいずっと悩んでいたんです。 IEだから仕方ないかなとか、IEが悪いに違いない、IEなんて死ねば良いんだとか、ひたすらIEに責任をなすりつけてこれは正常な動きはできないものなんだ、俺のせいじゃないとずっと目を逸らして来たんですが、現実と向き合ってみたら、問題はこのコンマにあったみたいです。 PHPと組み合わせて、foreachで回して配列に値を入れていたせいで、最後のコンマが余分だったことにうっかり気づかなかったのが敗因でしたね。 var myArray = [ {name : ""}, ]; 何かこんな感じの配列を作ってたわけっすよ。当然最後に不要なコンマが入ってしまいますね、これだと。 そこを修正したら、IEでも他のブラウザと同じような動作をしてくれるようになりました。やったね★ まあ、IEが悪いと言えば悪いような、俺が悪いと言えば悪いような……？　そんな感じ？]]></description>
			<content:encoded><![CDATA[<p>（突然ですけど）例えばですが、こんな↓配列があったとします。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

var myArray = [1,2,3,4,5,];

</textarea>
<p>まあ、何てことない普通の配列なのですが、注目してほしいのは、5の後ろにあるコンマ。</p>
<p>ここにコンマがあると、ブラウザによって配列の要素数が変わって来るようなのです。</p>
<p>実際にこの要素数をアラートしてみれば分かるのですが</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

var myArray = [1,2,3,4,5,];

alert(myArray.length);

</textarea>
<p>上記の場合、FirefoxやOperaだと結果は5が返ってきます。</p>
<p>しかし、IEだと6が返って来るようです。</p>
<p>コンマの後に何もなくても、要素数をカウントしてしまうみたいですね、IEだと。</p>
<p>仕事ではないんですが、ちょっとjQueryのライブラリを使ってお遊びでサイトを作ったりなんかしていまして……で、どうしてもIEでだけjavascriptが思うように動作してくれなくてですね……何でかなぁと3か月くらいずっと悩んでいたんです。</p>
<p>IEだから仕方ないかなとか、IEが悪いに違いない、IEなんて死ねば良いんだとか、ひたすらIEに責任をなすりつけてこれは正常な動きはできないものなんだ、俺のせいじゃないとずっと目を逸らして来たんですが、現実と向き合ってみたら、問題はこのコンマにあったみたいです。</p>
<p>PHPと組み合わせて、foreachで回して配列に値を入れていたせいで、最後のコンマが余分だったことにうっかり気づかなかったのが敗因でしたね。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

var myArray = [

<?php foreach($data as $val) : ?>

        {name : "<?php echo $val ?>"},

<?php endforeach ?>

];

</textarea>
<p>何かこんな感じの配列を作ってたわけっすよ。当然最後に不要なコンマが入ってしまいますね、これだと。</p>
<p>そこを修正したら、IEでも他のブラウザと同じような動作をしてくれるようになりました。やったね★</p>
<p>まあ、IEが悪いと言えば悪いような、俺が悪いと言えば悪いような……？　そんな感じ？</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/1104/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>javascriptのreturn false</title>
		<link>http://astrodeo.com/blog/archives/632</link>
		<comments>http://astrodeo.com/blog/archives/632#comments</comments>
		<pubDate>Mon, 31 May 2010 05:12:48 +0000</pubDate>
		<dc:creator>マッチー</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=632</guid>
		<description><![CDATA[HTMLでaタグにjavascriptのonclick属性なんかをつけたいときは、まあこんな書き方になると思う。 test このとき、return falseをつけておかないと、リンクをクリックしてアラートが出た後に、アンカーの移動（で合ってる？）みたいなのが行われてしまう。URLの最後に＃がつく感じですね。 ここを＃にしないでjavascript:void(0)と書くと、return falseがなくても大丈夫なのかな……自分で確かめた限りでは大丈夫だったけど、参考文献をいくつかあさった限りでは、javascript:void(0)でも完全なリンクの無効にはならないっぽいことも書いてあった。まあどっちの場合でもreturn falseを書いとけばまず間違いはないだろうと思われます。 僕も基本的には常にreturn falseを書いてます。まあ僕の場合は、return falseの意味をちゃんと理解してたわけじゃなくて、初めてjavascriptを触ったときに、とりあえず後ろにはreturn falseをつけるのが常識なんだろうみたいな印象を持って以降、今でもそのままの流れでとりあえずつけとけばいいやって思って書いてる感じですけど。 でもそんな覚え方だと、やっぱり落とし穴の一つや二つにははまるわけですね。 この前、ラジオボタンにonchange属性をつける仕様があったんですけど、当然のようにreturn falseをつけて書いてたら、チェックの変更が起きなくなってしまったんですね。 だいぶ適当に書きましたけど、例えばこんな感じのラジオボタンがあったとして、最初にラジオ１の方を選択してそっちにチェックがついたら、何度ラジオ２の方のボタンを押してもチェックはラジオ１の方についたままになってたんですよ。何か言葉だけで説明するとややこしいっすかね……すんません。 ちなみに、function test()はちゃんと呼ばれます。だからthis.valueをアラートしてみると、ちゃんと選択された方の値は取得できるんですよ。でもチェックの移動はしない。function内で無理やりチェックを変えるとかも試みてみたんですけど、ダメでした。僕の書き方に問題があった可能性はここでは無視することにして、とりあえずダメでした。しつこいようですが、ダメでした。 ダメでした。 で、その原因がreturn falseでした。こいつを外したら、正常な動きをするようになった。 何かねぇ……ラジオボタンにonchangeって、なかなかの曲者っぽい感じがします。Firefoxではちゃんと動くのにIEだとちゃんと動かなかったりとか。っていうか、IE6だとちゃんと動かなかったりとか。 この前もね、先方さんから「何かラジオボタンのとこが上手く動かないんだけど」みたいなこと言われて、こっちでいろいろチェックしてみたんですけど、どこにも不具合が見つからなくて、まさかと思ってIE6でテストしてみたら、まさにズバリだったさ。 くそっ、IE6め。IE6めぇぇぇぇ！！]]></description>
			<content:encoded><![CDATA[<p>HTMLでaタグにjavascriptのonclick属性なんかをつけたいときは、まあこんな書き方になると思う。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

<a href="#" onclick="alert('test');return false">test</a>

</textarea>
<p>このとき、return falseをつけておかないと、リンクをクリックしてアラートが出た後に、アンカーの移動（で合ってる？）みたいなのが行われてしまう。URLの最後に＃がつく感じですね。</p>
<p>ここを＃にしないでjavascript:void(0)と書くと、return falseがなくても大丈夫なのかな……自分で確かめた限りでは大丈夫だったけど、参考文献をいくつかあさった限りでは、javascript:void(0)でも完全なリンクの無効にはならないっぽいことも書いてあった。まあどっちの場合でもreturn falseを書いとけばまず間違いはないだろうと思われます。</p>
<p>僕も基本的には常にreturn falseを書いてます。まあ僕の場合は、return falseの意味をちゃんと理解してたわけじゃなくて、初めてjavascriptを触ったときに、とりあえず後ろにはreturn falseをつけるのが常識なんだろうみたいな印象を持って以降、今でもそのままの流れでとりあえずつけとけばいいやって思って書いてる感じですけど。</p>
<p>でもそんな覚え方だと、やっぱり落とし穴の一つや二つにははまるわけですね。</p>
<p>この前、ラジオボタンにonchange属性をつける仕様があったんですけど、当然のようにreturn falseをつけて書いてたら、チェックの変更が起きなくなってしまったんですね。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

<input type="radio" id="radio1" name="radio" value="ラジオ１" onchange="test(this.value);return false" />

<input type="radio" id="radio2" name="radio" value="ラジオ２" onchange="test(this.value);return false" />

</textarea>
<p>だいぶ適当に書きましたけど、例えばこんな感じのラジオボタンがあったとして、最初にラジオ１の方を選択してそっちにチェックがついたら、何度ラジオ２の方のボタンを押してもチェックはラジオ１の方についたままになってたんですよ。何か言葉だけで説明するとややこしいっすかね……すんません。</p>
<p>ちなみに、function test()はちゃんと呼ばれます。だからthis.valueをアラートしてみると、ちゃんと選択された方の値は取得できるんですよ。でもチェックの移動はしない。function内で無理やりチェックを変えるとかも試みてみたんですけど、ダメでした。僕の書き方に問題があった可能性はここでは無視することにして、とりあえずダメでした。しつこいようですが、ダメでした。</p>
<p>ダメでした。</p>
<p>で、その原因がreturn falseでした。こいつを外したら、正常な動きをするようになった。</p>
<p>何かねぇ……ラジオボタンにonchangeって、なかなかの曲者っぽい感じがします。Firefoxではちゃんと動くのにIEだとちゃんと動かなかったりとか。っていうか、IE6だとちゃんと動かなかったりとか。</p>
<p>この前もね、先方さんから「何かラジオボタンのとこが上手く動かないんだけど」みたいなこと言われて、こっちでいろいろチェックしてみたんですけど、どこにも不具合が見つからなくて、まさかと思ってIE6でテストしてみたら、まさにズバリだったさ。</p>
<p>くそっ、IE6め。IE6めぇぇぇぇ！！</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/632/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>submit is a not function って言われた</title>
		<link>http://astrodeo.com/blog/archives/508</link>
		<comments>http://astrodeo.com/blog/archives/508#comments</comments>
		<pubDate>Mon, 19 Apr 2010 00:20:07 +0000</pubDate>
		<dc:creator>マッチー</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=508</guid>
		<description><![CDATA[javascriptでフォームのデータを送信する場合はsubmit()を使う。 document.getElementById('form_id').submit(); 先日、Ajaxで処理を行う場面に出くわしたときにこのsubmit()を使ったのだけど、とあるページでだけエラーが起きた。 $('form_id').submit is not a function こんな感じのエラー。あ、document.get～が$になってるのはprototype.jsを使用してるからね。 いくつかのページで同様の処理を行っていたのだけど、一つのページでだけこのエラーが出て、どうにも先に進まなかった。 で、調べた結果たどり着いたのがこちら ＞どうやらidやname属性が &#8220;submit&#8221; になってる部品があると、JavaScriptのFormオブジェクトのsubmit()が上書きされる模様。 ということなんだそうです。 ああ、言われてみれば確かに。CakePHPでsubmitボタンの種類別の判定をしようとして、$this-&#62;params['form']['submit']に値を入れるために、submitボタンにsubmitっていうname属性をつけていました。 &#60;input type="submit" name="submit" value="送信" /&#62; //データ送信時の値 $this-&#62;params['form']['submit] =&#62; 送信 確認画面を挟んだ処理とかのときにね、この値をswitch文とかで判定しようと思ってやったことだったんだけど、まさかそれがこんなところに影響を及ぼすとは、思いもよりませんでした。まあ、分かってしまえば解決方法は至って簡単。name属性を別のに変えれば良い。 &#60;input type="submit" name="send" value="送信" /&#62; //データ送信時 $this-&#62;params['form']['send'] =&#62; 送信 上記の参考サイトさんには、これは当たり前すぎる的なことを書いてあるんですが……そーだったんですか。 でもそういう当たり前のことに気づかないことだって、たまにはあるよね。人間だもの。 （僕の場合は気づかなかったんじゃなくて知らなかっただけですけど……）]]></description>
			<content:encoded><![CDATA[<p>javascriptでフォームのデータを送信する場合はsubmit()を使う。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

document.getElementById('form_id').submit();

</textarea>
<p>先日、Ajaxで処理を行う場面に出くわしたときにこのsubmit()を使ったのだけど、とあるページでだけエラーが起きた。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

$('form_id').submit is not a function

</textarea>
<p>こんな感じのエラー。あ、document.get～が$になってるのはprototype.jsを使用してるからね。</p>
<p>いくつかのページで同様の処理を行っていたのだけど、一つのページでだけこのエラーが出て、どうにも先に進まなかった。</p>
<p>で、調べた結果たどり着いたのが<a href="http://www.foxking.org/oldsite/?20070419S1" target="_blank">こちら</a></p>
<p>＞<strong>どうやらidやname属性が &#8220;submit&#8221; になってる部品があると、JavaScriptのFormオブジェクトのsubmit()が上書きされる模様。 </strong></p>
<p>ということなんだそうです。</p>
<p>ああ、言われてみれば確かに。CakePHPでsubmitボタンの種類別の判定をしようとして、$this-&gt;params['form']['submit']に値を入れるために、submitボタンにsubmitっていうname属性をつけていました。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

&lt;input type="submit" name="submit" value="送信" /&gt;

//データ送信時の値
$this-&gt;params['form']['submit] =&gt; 送信

</textarea>
<p>確認画面を挟んだ処理とかのときにね、この値をswitch文とかで判定しようと思ってやったことだったんだけど、まさかそれがこんなところに影響を及ぼすとは、思いもよりませんでした。まあ、分かってしまえば解決方法は至って簡単。name属性を別のに変えれば良い。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

&lt;input type="submit" name="send" value="送信" /&gt;

//データ送信時
$this-&gt;params['form']['send'] =&gt; 送信

</textarea>
<p>上記の参考サイトさんには、これは当たり前すぎる的なことを書いてあるんですが……そーだったんですか。</p>
<p>でもそういう当たり前のことに気づかないことだって、たまにはあるよね。人間だもの。<br />
（僕の場合は気づかなかったんじゃなくて知らなかっただけですけど……）</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/508/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>背景画像をあらかじめ読み込んでおく</title>
		<link>http://astrodeo.com/blog/archives/481</link>
		<comments>http://astrodeo.com/blog/archives/481#comments</comments>
		<pubDate>Wed, 24 Mar 2010 05:42:01 +0000</pubDate>
		<dc:creator>マッチー</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=481</guid>
		<description><![CDATA[基本的に画像はキャッシュされていないとページの表示が終わってから読み込まれる。でもたとえば背景に使っている画像などで、ページと同時に表示されている方が望ましい場合も多いかもしれない。この前、デザイナーからそんなような要望が実際にあった。 そんなときはjavascriptで先に画像を読み込んでおくという手もあるっぽい。 &#60;script&#62; image = new Image(); image.src = 'img/sample.jpg'; &#60;/script&#62; こんな感じ。]]></description>
			<content:encoded><![CDATA[<p>基本的に画像はキャッシュされていないとページの表示が終わってから読み込まれる。でもたとえば背景に使っている画像などで、ページと同時に表示されている方が望ましい場合も多いかもしれない。この前、デザイナーからそんなような要望が実際にあった。</p>
<p>そんなときはjavascriptで先に画像を読み込んでおくという手もあるっぽい。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

&lt;script&gt;

image = new Image();

image.src = 'img/sample.jpg';

&lt;/script&gt;

</textarea>
<p>こんな感じ。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/481/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ブロック回避でページの読み込み速度を上げる</title>
		<link>http://astrodeo.com/blog/archives/478</link>
		<comments>http://astrodeo.com/blog/archives/478#comments</comments>
		<pubDate>Wed, 17 Mar 2010 09:10:43 +0000</pubDate>
		<dc:creator>マッチー</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=478</guid>
		<description><![CDATA[WEBページが読み込まれる際、javascriptの読み込み中は他の読み込み処理がブロックされてしまう。つまり画像なんかは、javascriptが読み込まれると、読み込みが終わるまで画像が読み込まれない。 できればこの処理が並列で行われると良いのだが、現状はSafariやIE8でしか並列処理は実装されていないらしい。そのうち段々と実装されていくらしいけど。 とりえあず、全体的に実装されるまでは何らかの対策を講じようというわけで、その何らかの対策についてですけれど、javascriptを動的にロードすることで、並列処理を可能にする方法がある。 通常、javascriptファイルを読み込む場合は &#60;head&#62; &#60;script type="text/javascript" src="js/sample.js"&#62;&#60;/script&#62; &#60;/head&#62; headタグの中に↑こんな感じで記述するけれど、これ自体をjavascriptで行うことで、動的な読み込みが可能になる。 &#60;script&#62; var js = document.createElement('script'); js.type = 'text/javascript'; js.src = 'js/sample.js'; var head = document.getElementsByTagName('head'); head[0].appendChild(js); &#60;/script&#62; 同様にcssもこの方法で読み込むことも可能っぽい。 参照サイトはこちら。実際に並列処理している様子が分かるますです。]]></description>
			<content:encoded><![CDATA[<p>WEBページが読み込まれる際、javascriptの読み込み中は他の読み込み処理がブロックされてしまう。つまり画像なんかは、javascriptが読み込まれると、読み込みが終わるまで画像が読み込まれない。</p>
<p>できればこの処理が並列で行われると良いのだが、現状はSafariやIE8でしか並列処理は実装されていないらしい。そのうち段々と実装されていくらしいけど。</p>
<p>とりえあず、全体的に実装されるまでは何らかの対策を講じようというわけで、その何らかの対策についてですけれど、javascriptを動的にロードすることで、並列処理を可能にする方法がある。</p>
<p>通常、javascriptファイルを読み込む場合は</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

&lt;head&gt;

&lt;script type="text/javascript" src="js/sample.js"&gt;&lt;/script&gt;

&lt;/head&gt;

</textarea>
<p>headタグの中に↑こんな感じで記述するけれど、これ自体をjavascriptで行うことで、動的な読み込みが可能になる。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">

&lt;script&gt;

var js = document.createElement('script');

js.type = 'text/javascript';

js.src = 'js/sample.js';

var head = document.getElementsByTagName('head');

head[0].appendChild(js);

&lt;/script&gt;

</textarea>
<p>同様にcssもこの方法で読み込むことも可能っぽい。</p>
<p>参照サイトは<a href="http://yuiblog.com/blog/2008/07/22/non-blocking-scripts/" target="_blank">こちら</a>。実際に並列処理している様子が分かるますです。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/478/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JsDecoderはやるやつだった</title>
		<link>http://astrodeo.com/blog/archives/463</link>
		<comments>http://astrodeo.com/blog/archives/463#comments</comments>
		<pubDate>Fri, 12 Mar 2010 13:28:30 +0000</pubDate>
		<dc:creator>マッチー</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=463</guid>
		<description><![CDATA[wordpressのビジュアルエディタは、デフォルトの改行はpタグが入りますよね。デフォルトの改行って言い方が正しいのかはよく分からないけど、brタグを挿入したいと思ったら基本的にはshift+enterで改行しますよね。 で、今回それを逆にできないかなって思ったわけですよ。仕様的にそういう要求をされているのかをいまいち掴みかねた部分もあるんですけど、編集画面で改行を1行だけにしてほしい的なことを言われたので、たぶんそんな感じのことを言ってると思ったわけですよ。別に現状で問題なければ、わざわざそんな要求をしてこないと思うし。そう思ったわけですよ。 プラグインとかをいろいろ調べてみたんですけど、自分が調べた限りでは、記事投稿の際にpタグやbrタグを挿入しないプラグインは存在するんですが、それだと本文にも改行が入らないようになってしまうので、もっと別のやり方を考えないといけない。 僕も詳しいことは分かっていないんですけど、enterを押したらpタグを入れてshift+enterだったらbrタグを入れるというのは、wp-includes/js/tinymceの中にあるtiny_mce.jsだかwp-tinymce.jsあたりで制御してるっぽいですね。たぶん、wp-tinymce.jsの方なのかな。だからこのファイルをこねくり回せば何とかなるんじゃないかと思い、とりあえずいろいろこねくり回してみることにしました。この辺り↓のサイトさんを見ても、そんなようなことが書いてあるし。 http://modxcms.com/forums/index.php?topic=15204.0 http://d.hatena.ne.jp/tohokuaiki/20080326/tiny_mce そういうわけで、いざwp-tinymce.jsの中身を見てみたわけなんですが……まあ～……見づらいっすね。jquery.jsなんかもそうですけど、余計なスペースとか改行を省略するために、1行で全コードを書いてあったりするじゃないっすか。だから追うのが大変でした。wp-tinymce.jsとかも、行数にすると30行足らずしかないから、1行あたりのソースがものすごく長い。某ジャンプ漫画の休載期間並に長い。if文の中にif文があってその中でfor文のループ処理を行っていて、その中でさらにif文を……みたいのが全部1行で書いてありますからね。玉ねぎかっつーの（←？） まあ結論から言うと、さんざんこねくり回した挙句にenterとshift+enterの挙動を逆にするという操作は結局実現できなかったんですけど、今日はその話はおまけでして……今回はその時にちょっと役に立ったサイトさんがあったので、それを紹介したいというわけなんです、はい。 しかし、最近の僕は「いろいろ頑張った挙句にできませんでした」って感じの記事ばっかりだな……この前のtera termのときといい……ただのダメなやつじゃんねｗｗ。 まあそれは置いといて、今日ご紹介したいのはJs Decoderというサイト。 このサイト、javascriptのコードを貼っつけてdecodeってやると、良い感じにdecodeしてくれるんすよ。ためしにwp-tinymce.jsとかデコードしてみたんすけど、もう見やすさが違い過ぎました。美人は三日で飽きる、ブスは三日で慣れるなんて昔の人は言ったもんですが、見づらいソースは何日経っても見づらいですよね。見やすいソースは何日経っても見やすい。そりゃそうだ。 っていうか、wp-tinymce.jsとか、デコードすると普通に15000行とかあるんすけど……それを30行程度で記述するって、どんだけっすか。 このJs Decoder、個人的には結構便利だなと思いました。インデントとかもちゃんと取って表示してくれるし。]]></description>
			<content:encoded><![CDATA[<p>wordpressのビジュアルエディタは、デフォルトの改行はpタグが入りますよね。デフォルトの改行って言い方が正しいのかはよく分からないけど、brタグを挿入したいと思ったら基本的にはshift+enterで改行しますよね。</p>
<p>で、今回それを逆にできないかなって思ったわけですよ。仕様的にそういう要求をされているのかをいまいち掴みかねた部分もあるんですけど、編集画面で改行を1行だけにしてほしい的なことを言われたので、たぶんそんな感じのことを言ってると思ったわけですよ。別に現状で問題なければ、わざわざそんな要求をしてこないと思うし。そう思ったわけですよ。</p>
<p>プラグインとかをいろいろ調べてみたんですけど、自分が調べた限りでは、記事投稿の際にpタグやbrタグを挿入しないプラグインは存在するんですが、それだと本文にも改行が入らないようになってしまうので、もっと別のやり方を考えないといけない。</p>
<p>僕も詳しいことは分かっていないんですけど、enterを押したらpタグを入れてshift+enterだったらbrタグを入れるというのは、wp-includes/js/tinymceの中にあるtiny_mce.jsだかwp-tinymce.jsあたりで制御してるっぽいですね。たぶん、wp-tinymce.jsの方なのかな。だからこのファイルをこねくり回せば何とかなるんじゃないかと思い、とりあえずいろいろこねくり回してみることにしました。この辺り↓のサイトさんを見ても、そんなようなことが書いてあるし。</p>
<p><a href="http://modxcms.com/forums/index.php?topic=15204.0" target="_blank">http://modxcms.com/forums/index.php?topic=15204.0</a></p>
<p><a href="http://d.hatena.ne.jp/tohokuaiki/20080326/tiny_mce" target="_blank">http://d.hatena.ne.jp/tohokuaiki/20080326/tiny_mce</a></p>
<p>そういうわけで、いざwp-tinymce.jsの中身を見てみたわけなんですが……まあ～……見づらいっすね。jquery.jsなんかもそうですけど、余計なスペースとか改行を省略するために、1行で全コードを書いてあったりするじゃないっすか。だから追うのが大変でした。wp-tinymce.jsとかも、行数にすると30行足らずしかないから、1行あたりのソースがものすごく長い。某ジャンプ漫画の休載期間並に長い。if文の中にif文があってその中でfor文のループ処理を行っていて、その中でさらにif文を……みたいのが全部1行で書いてありますからね。玉ねぎかっつーの（←？）</p>
<p>まあ結論から言うと、さんざんこねくり回した挙句にenterとshift+enterの挙動を逆にするという操作は結局実現できなかったんですけど、今日はその話はおまけでして……今回はその時にちょっと役に立ったサイトさんがあったので、それを紹介したいというわけなんです、はい。</p>
<p>しかし、最近の僕は「いろいろ頑張った挙句にできませんでした」って感じの記事ばっかりだな……この前の<a href="http://astrodeo.com/blog/archives/454">tera term</a>のときといい……ただのダメなやつじゃんねｗｗ。</p>
<p>まあそれは置いといて、今日ご紹介したいのは<a href="http://www.gosu.pl/decoder/" target="_blank">Js Decoder</a>というサイト。</p>
<p>このサイト、javascriptのコードを貼っつけてdecodeってやると、良い感じにdecodeしてくれるんすよ。ためしにwp-tinymce.jsとかデコードしてみたんすけど、もう見やすさが違い過ぎました。美人は三日で飽きる、ブスは三日で慣れるなんて昔の人は言ったもんですが、見づらいソースは何日経っても見づらいですよね。見やすいソースは何日経っても見やすい。そりゃそうだ。</p>
<p>っていうか、wp-tinymce.jsとか、デコードすると普通に15000行とかあるんすけど……それを30行程度で記述するって、どんだけっすか。</p>
<p>このJs Decoder、個人的には結構便利だなと思いました。インデントとかもちゃんと取って表示してくれるし。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/463/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

