JavaScript

キモイ

JavaScriptのthrowが何でも投げられcatchが何でもとれる例を書いてみたら、 思いのほかキモかったのでコードを載せる。 関数をthrowしたのをcatchして実行してる。 function func(){ console.info('hogehoge'); } try{ throw func; }catch(e){ e();//hogehoge…

jQueryUIの素敵なとこってどこなんだぜ?

まず、jQueryの素敵な所 は何かって言うと、 CSSセレクタで比較的簡単に簡単に要素を選択出来る メソッドチェーン(流れるようなインタフェース?)でDOM操作が快適に行える という所だと思うのだ。 event関連とかAjax関連とかネイティブのAPIを素敵な感じにラ…

若手IT勉強会 サイ本読書会 第4章〜第6章

読んだり喋ったりして気になったこととかを掻い摘んで 第4章 変数 4.2 変数の宣言 var文で宣言された変数はdelete演算子で削除しようとするとエラーになると書かれているが、 グローバル変数の場合は普通に削除できる(windowオブジェクトのプロパティだから…

Google ChromeのCanvasがすこぶる速い件について

前置き mal_blue@tumblr Google Chrome 速っ!で、 Untitled Film Works | Professional Film Makersなる3Dゲーム風デモを引き合いに速い件について言及されていた。 それを受けて体感速度の比較記事(http://dara-j.asablo.jp/blog/2008/09/12/3756785)を書…

jQueryの$(document).readyをjQuery非依存にする。

2008/09/09追記 GitHubに置いてみた。これくらいなら、Gistで良かったかも。 bindready/bindReady.js at master · monjudoh/bindready · GitHub jQueryを使っていないWebサイトで必要最小限のJavaScriptを使って、 DOM構築後のタイミングで実行したい処理を…

jQuery Profile pluginについて

2008/08/27追記 John Resigのprofile用plugin使った方がいいんじゃね? John Resig - Deep Profiling jQuery Apps せつめー $(selector)の呼び出しのセレクタごとの呼び出し回数と時間を計測して、consoleに出力してくれる。 使い方 jquery.profile.jsを読み…

$(document).ready();について

jQuery使用時に以下の書き方をすると、どれを使ってもDOM構築後のタイミングで実行したい処理を実行できる。 $(document).ready(function(){ /*実行したい処理*/ }); $().ready(function(){ /*実行したい処理*/ }); $(function(){ /*実行したい処理*/ }); 以…

Re:jQueryのheight()やwidth()はOpera9.5に対応していない気がする

jQueryのheight()やwidth()はOpera9.5に対応していない気がする at HouseTect, JavaScriptな情報をあなたにより よく分からないけどこうすればいいんジャマイカ? (function($){ if(!$.browser.opera || $.browser.version < 9.5) return; $.each([ 'Height'…

Firebugについてまとめ

随時更新 公式ドキュメント Firebug Console API http://getfirebug.com/commandline.html 気になったところ $$(selector) 複雑なCSSセレクタでなければjQueryの$関数の変わりとして使える感じ。 dirxml(node) outerHTML相当のHTMLを出してくれる感じ $$(sel…

jQueryUIのコンポーネント化についてふと考えたこと

jQueryUIは何かのコンテンツをjQueryオブジェクトにしてpluginのメソッドを呼ぶだけで様々な機能を付加できる。 $('<div/>') .append('<div><input type="text"/></div>') .append('<div><span/></div>') .dialog({ buttons:{ copy:function(){ $('div:eq(1)>span',this).text($('div:eq(0)>:text',this).val()); }, </div/>…

jQuery UI Dialogの使い方の基本-初期化とメソッド呼び出し(jQuery UI 1.5.2)

jQuery UI Dialogの導入法と使い方のさわり(jQuery UI 1.5.2) - 文殊堂の続きまず、UI Dialogを読み込んだときにjQueryオブジェクトで使えるようになるメソッドはdialogメソッドだけです。 UI Dialog絡みの操作は全部dialogメソッドで行います。 具体的に出…

jQuery UI Dialogを使う Google AJAX Libraries API編(jQuery UI 1.5.2)

jQueryだけでなくjQueryUIもGoogle AJAX Libraries APIで取ってこれるようですので、その使い方をば。Google AJAX Libraries APIで取ってくるjQueryUIは、 UI Core・Core Interaction・Widgets・Effects全部入りです。 なので、当然前回言及したDialog・Drag…

jQuery UI Dialogの導入法と使い方のさわり(jQuery UI 1.5.2)

jQuery UI Dialogって何? http://dev.jquery.com/view/trunk/ui/demos/functional/#ui.dialogにあるデモを見ると感じがつかめると思うけど、 ウィンドウっぽいダイアログをちょいちょいで作れちゃうし、 オーバーレイありのも作れちゃうjQuery plugin。 使…

Firebug Liteの表示非表示をEscキーで切り替える

includeAndRun pluginを使う。 これと↓のjsファイルをてきとーに作ってHTMLの中でscriptタグで読み込んでやる。 $(function(){ $.includeAndRun('http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js',function(){ firebug.init(); firebug…

includeAndRun pluginを少し弄ってみた

jQueryに標準で入っているjQuery.getScript関数で良い。 pluginのコード (function($){ $.extend($,{ includeAndRun:function(scriptUrl,callback){ var s = $('<script/>') .attr({ src:scriptUrl, language:'javascript', type:'text/javascript' }); if($.browser.</script/>…

外部のJavaScriptを読み込んだ後でそれに依存した関数を実行するjQuery plugin

jQueryに標準で入っているjQuery.getScript関数で良い。 Ajaxianの記事でこんなのを見つけてインスパイアされてつくった。 やっつけなのでFirefox3でしか動作確認してない。 pluginのコード (function($){ $.extend($,{ includeAndRun:function(scriptUrl,ca…

JavaScriptでcookieを操作する時はjquery.cookie.jsを使おう

↓でtxtファイルとしてダウンロードできる。 http://plugins.jquery.com/project/cookie 使い方はデモを触ってみてソース見るとか、 jquery.cookie.jsのソースのコメントの@exampleを見るとかすればいいと思うけど簡単に説明しておくと、 基本的には$.cookie(…

条件付メソッドチェーン実現のためjQueryのラッパーを作ってみた

発端 条件付メソッドチェーンを実現するjQuery pluginを作ってみた - 文殊堂の今後の課題を実現したい 今回作ったもの testという名前のメソッドを呼ぶとそれ以降、 jQueryオブジェクトをラップしたオブジェクトによって メソッドチェーンが繋がっていく。 j…

条件付メソッドチェーンを実現するjQuery pluginを作ってみた

発端 monjudoh jQueryで出来たらいいなーと思うことは条件付メソッドチェーンで、メソッドチェーン内の特定のメソッド呼び出しを特定条件を満たした場合のみ実際に実行するように出来たら、常にメソッドチェーンでやれて便利だと思う。 monjudoh 条件判定メ…

livedoor Readerにはてなブックマークのコメントを表示するGreasemonkey ScriptがFirefox3.0で動かない件とその対応

2008/09/11追記 gistに置いてリンククリックでインスコできるようにした。 http://gist.github.com/raw/10158/dc416523e4ba898d6f15dbda6fdc84ff5a44d8d0?ldrhatebucomments.user.js 元のエントリ UserJS Mania: livedoor Readerにはてなブックマークのコメ…

Firefox3.0+Greasemonkey0.8.20080609.0で「new Date()」がこける件

バグなのか仕様変更なのかはよく分かりません。 Firebugが入っている状態で、こんなグリモンを入れてリロードしてみると、 // ==UserScript== // @name Date test // @namespace hogehoge // @include * // ==/UserScript== (function () { with (unsafeWind…

withの挙動がFirefoxとIE・Operaで違う件

(function(){ var namespace={a:'hogehoge'}; with(namespace){ alert(a); } })(); 上記のコードのようにwith文の中で、どのスコープでも未定義の変数aを使おうとすると、 with文の括弧の中に入ってるオブジェクトのaプロパティを代わりに使ってくれます。 …

JavaScriptファイルの連結ではまった件

JavaScriptのコードをある程度たくさん書く場合、最初から1ファイルだといろいろ面倒くさいので、 ファイルを小分けにして開発して、後でがっちゃんこして読み込ませるといったことをします。 原始的な方法だと↓こんな感じ cat a.js b.js c.js > app.js (Win…

JavaScriptデバッグtool NitobiBug

IIS7 NitobiBugというscriptを読み込ませるだけで使えるJavaScriptデバッガがよさげなので紹介します。 読み込ませたら、nitobi.Debug.log関数にオブジェクトやDOM要素を渡してやれば、中身を見ることが出来ます。 ↓bookmarklet化しましたが、できれば公式サ…

Templalien jQueryを使用したテンプレートエンジンもどき

テンプレートエンジン的な使い方をするテンプレートエンジン以外の何かを作ってみました。 JUI発表版のTwittelienで必要になったので作ったけどとりあえず版なので性能とか度外視です。 Templalien本体 function Templalien(template){ this._template = jQu…

Templalienを実際に使ってみる

Templalien jQueryを使用したテンプレートエンジンもどき - 文殊堂を実際に使ってみます。 <html lang="ja"> <head> <title>Templalien</title> <link type="text/css" rel="stylesheet" media="screen, projection" href="http://assets2.twitter.com/stylesheets/screen.css"/> </link></head></html>

JavaScript1.6でBrainf**kもどきを実装

2008/09/10追記 gistに置いた 9713’s gists · GitHub 動機 1000speakersとかで言語の処理系を実装した人をたくさん目にしたが、 自分はまだ一つも実装していない。 これでプログラマを名乗ってていいのか? 言い訳とか やっつけ仕事のためにArray.prototype.…

コードリーディングjQuery.fn.nextAll

経緯 jQuery.fn.nextAllが割と早いのでどうせnextSiblingを次々辿って要素を詰めたりしてるんだろうと思ってコードを追ってみた。 バージョンは1.2.3を使用。 (1)ソースコード上を「nextAll」で検索したら、1253行目〜1272行目にそれっぽいのがあった。 jQue…

キャプチャリングとバブリング Safari・Opera編

キャプチャリングとバブリング Firefox編 - 文殊堂の追加調査 Firefox2と同様SafariとOperaでも検証用HTMLで検証してみました。 Safari3.1(Win版) Firefox2とまったく同じ動作でした。 Opera9.26 Firefox2と結果が異なりました。 (1)-外側クリック 表示され…

キャプチャリングとバブリング Firefox編

サイ本の17.2に詳しく書いてありますが、JavaScriptのDOM レベル2イベントでは、 イベント伝播は3つの段階で構成されます。 キャプチャリングフェーズ ターゲットノード自身でのイベントハンドラの実行 バブリングフェーズ 上図のように3つ入れ子になった要…