end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

javascript

66.9*100=6690.000000000001 って丸め誤差? いや IEEE 754 の仕様でした

http://blog.asial.co.jp/1191 偶然、↑このエントリを読んで、「66.9*100 の程度の桁数で丸め誤差でるの?」と思いましたが、js 的に浮動小数点型は、javaのBigDecimal 実装の bigdecimal.js を使うのがよさそ。mathcontext.js と bigdecimal.js は、例えば、…

jQuery.each() でループの continue / break は return true / false

知りませんでしたよ。お恥ずかしい $('.some_class').each(function(){ if ( some_switch == 1 ) { return true; // = continue } else if ( some_flag == 2 ) { return false; // = break } //TODO });

DocumentFragmentでDOM操作を高速化する

と、 JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技:書籍案内|技術評論社 に記載がありました。 初めて知りましたが、IEでも使えるようなので、javascriptでDOM変更を多く行う際のパフォーマンス改善を必要とする場合、試してみます。

jQuery EasyDate で human-readable な経過時間の表示

Time::Duration::ja で human-readable な経過時間を表示 - end0tknrのkipple - web写経開発以前、別のエントリで、perl のTime::Duration::ja を紹介していますが、これのjquery版と言えるjQuery EasyDateを見つけました。http://easydate.parshap.com/表示…

jQuery.ajax()でファイルのダウンロード

javascript (ajax)では、ファイル保存ダイアログを起動できない? ブラウザでファイルをダウンロードすると、通常、次のようなコモン?ダイアログが表示されますが、javascript (ajax)で、このダイアログを起動することはできないようです。 ajaxのダウンロー…

jQuery.ajax()のsuccess時に返されるXMLHttpRequestのユースケースって?

http://api.jquery.com/jQuery.ajaxjQuery.ajax()は非同期のhttp request(GET PUT)を行う関数で、ver.1.5でsuccess時のcallback関数に XMLHttpRequestが追加されています。この為、$.ajax()は次のように書くことができます。 function ajax_download(file_na…

jQuery Templates

http://api.jquery.com/category/plugins/templates/jQuery Templatesを初めて使ったので、今後のためにメモ。 //まずは、template登録 $.template('tei_tr_tmpl', "<tr>"+ "<td><a href='#'>${member_id}</a></td>"+ //会員ID "<td>${pref}</td>"+ //都道府県 "</tr>"); //次にhtmlに実体化 for (var i …

google map apiで複数マーカー&複数吹き出しを表示

今回、gmap apiで複数マーカー&複数吹き出しを表示する機会があったので、html + javascript srcを記載しておきます。複数マーカーと複数吹出しを表示するのにやや、ハマりました。HTML <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script src="http://maps.google.com/maps?file=api&v=2&key=aaaaa" type="text/javascript" charset="utf-8"></script> </head></html>

ブラウザのclick箇所を解析するClickHeat

http://www.labsmedia.com/clickheat/index.html確かにユーザがマウスでクリックした部分を記録して表示できると、いいことあるかもしれません。ただ、liquid layoutなページでなければ、簡易にmouse eventから座標取得してもよい気がします。

javascriptでwindowを前面に表示

最近は、window.open() を使う機会が減りましたが、もしもの為のメモです。 window.opener.focus();

canvasタグに画像データを表示

http://www.html5.jp/canvas/how6.html http://thinkit.co.jp/article/60/4↑このurlの写経ですが、画像のプリロードや、ブラウザのcache対策等、初めて知った内容ばかりでした。html <html> <head> <link rel="stylesheet" type="text/css" href="common.css"> <script type="text/javascript" src="common.js"></script> </head> <body> <canvas id="c1"></canvas> </body></html>

zipファイルをhttp getし、zip解凍後、プレビュー表示

先日、javascriptで、zip圧縮解凍やbase64エンコーディングができることを知ったので、 1) zipファイルをhttp getし、 2) zip解凍後、 3)プレビュー表示 してみました。といっても、次のurlの写経です。http://hinata.in/blog/20101003214439.html http://as…

html5のFileReaderでドラッグ&ドロップなファイルのアップロード

html5では、file apiが追加された為、ドラッグアンドドロップでfileを開けるようになったようなので、試しに書いてみました。※html5では、FileReaderクラスとFormDataクラスを使うようですが、firefox3.6では、FormDataが使用できないようなので、base64形式…

jQuery.json.jsによるhash objectのjson化で、ややはまった

javascriptでは、array ≒ hash と信じていました。しかし、次のように書いた場合、hashのvalueは取得できるものの、jQuery.json.jsでjson化すると、null listなjsonしかできません。 var hash = new Array(); hash['KEY_A'] = 'VAL_A'; hash['KEY_B'] = 'VAL…

jqueryでtableの行をreverseしたり、hide or show したり

次のように書けば、tableのtrの表示順や、表示/非表示を変更できるみたい。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="jquery-1.3.2.min.js"></script> <style> table { border-collapse: collapse;} td { border: 1px solid #000000;} </style> </head> <body> </body></html>

CrossXhrによるクロスドメイン通信

CrossXhrによるクロスドメイン通信 flashのクロスドメイン通信をjavascriptから利用できるCrossXhrというライブラリを見かけました。http://code.google.com/p/crossxhr/wiki/CrossXhrCrossXhrのドキュメントに記載されている通りですが、以下ではCrossXhrの…

jsonpだとhttps pageからのhttpによるclient side include(ajax)もOK

scriptタグ内はsame origin policyが無効な為か、jsonpだとhttpsのページからhttpなコンテンツのclient side includeができるようです。firefox3.6でセキュリティの警告すら、出ないのに驚いた。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <style> </meta></head></html>

テキストボックス( html )におけるカーソル(caret)位置を取得

function get_caret_pos( elm ) { if (elm.selectionStart != undefined){ return elm.selectionStart; } //for IE elm.focus(); var range = document.selection.createRange(); range.moveStart( "character", - elm.value.length ); return range.text.le…

javascriptのsetTimeout()で指定するfunctionへの引数とthis問題

http://d.hatena.ne.jp/end0tknr/20100813/1281695700先程のエントリでは、setTimeout()を初めて使用しましたが、今回、ややハマったところがあったので、その内容を書き留めておきます。 setTimeoutの第1引数の関数に与える引数の指定方法 setTimeoutの書式…

jqueryを使ってsuggest (autocomplete? 入力補完?)を書いてみる

suggest機能のjavascript実装はたくさんあります 最近では、suggest機能(autocomplete機能?)もよく見かけるようになり、簡単に調べるだけでも多くのライブラリを見つけることができます。 suggest.js http://www.enjoyxstudy.com/javascript/suggest/ jquery…

編集画面を終了する際、「終了してよろしいですか?」とalert

onbeforeunload を使って、↓こんな感じ。 <script> window.onbeforeunload = function(event){ event = event || window.event; event.returnValue = '終了してよろしいですか?'; } </script> 保存操作は、jQuery.ajax(〜)のような手法でsubmitしないと、保存処理でも「終了し…

jQuery Watermark Pluginでテキストボックスに入力ヒントを表示

http://techblog.yahoo.co.jp/cat207/how_to/javascript/yahooのtech blogにも紹介されていますが、テキストボックスの入力欄に薄い入力ヒントが表示されているのを良く見かけます。 この実装方法は、いくつかあるようですが、私の場合、labelタグを使って表…

window sizeに合わせてelementをresize

// window sizeにあわせたelement高さ変更(一番下にあるelementであること前提) function changeHeight(id){ var obj = document.all && document.all(id) || document.getElementById && document.getElementById(id); if(obj){ clientSize=getWindowClient…

javascriptで年月を入力できるカレンダーコントロール

2013/11/23追記 このエントリを書いた当時は、jkl-calendar.js に大変、お世話になりましたが、最近では、 bootstrap-datepicker.js を気に入ってます javascript(jquery)によるカレンダー入力なら bootstrap-datepicker.js - end0tknrのkipple - web写経開…

Simple Tree Menuで表示するツリーデータ(ul,li)を作成

ツリー形式の表示には Simple Tree Menu(※1) を使用していますが、いただいたデータ(※2)をSimple Tree Menuで表示可能なul,liに変換する必要があったので、使用したperl scriptを書き留めておきます。※1 http://www.dynamicdrive.com/dynamicindex1/navigate…

javascript+cssによるシンプルなポップアップメニュー

javascriptとcssで簡単なpop upメニューを作成する機会があったので、メモしておきます。ポップアップというよりプルダウンメニューと言うべきかも。 <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="default.css"> <script type="text/javascript" src="common.js"></script> </head> <body> </body></html>

auto_ruby.jsでふりがな(半角カナ)を自動入力

次のurlで紹介されているauto_ruby.js(内部的にprototype.jsを使用してます)は、氏名(漢字)を入力すると、ふりがな(全角かなor全角カナ)を自動入力してくれます。http://ceo.sourcelab.jp/archives/97 http://d.hatena.ne.jp/a_horuru/20080702/1214997621携…

webサーバのログにユーザの外部サイトへの移動を記録

外部サイト→内部サイトの移動はリファラーを参照 ユーザの自サイトへ移動元は、アクセルログのリファラーを見れば一目瞭然です。例えば、ログに対して次のように表示されていれば、ユーザの移動元は www.google.co.jp であることが分かります。 127.0.0.1 - …

webサーバのログにユーザのPC環境を記録

一般のログ分析ツールはユーザのPC環境を収集できない webサイト分析にawstats等のログ分析ツールを利用している方は多いと思いますが、当然、ログ分析ツールではアクセスログの記録内容以外を分析することができません。apacheの設定ファイル(httpd.conf)で…

canvasタグやexcanvas.jsでブラウザに図形描画

SafariやFirefox, Operaでは canvas タグで図形を簡単に描画することができます。http://developer.mozilla.org/ja/Canvas_tutorialこのcanvas タグは、ieで使用できない為、これまで使用していませんでしたが、googleが用意したexcanvas.js を使用すれば、i…