2009-01-01から1ヶ月間の記事一覧

バッドノウハウ x 3

id="foo" の要素にアクセス 普通はこう <script id="foo"> alert(document.getElementById("foo").txt); </script> document.getElementById は省略できる <script id="foo"> alert(foo.txt); </script> 27byte減 ショートコーダーならスルーしがたい小悪魔的誘惑 IEを判別(IE="\v"=="v";) (13byte) IE5〜IE8でtru…

シンプルに

ここから.

IE8 RC1 リリース

IEブログ - http://blogs.msdn.com/ie/RC1 release notes を見るには、ブラウザの言語設定を英語に変更しアクセスする。 http://support.microsoft.com/kb/949787WindowsXP SP3 + IE8β にRC1をインストールする際の手順。 Uninstall Windows XP SP3 Uninstal…

strict モード対策

Firefox の JavaScript にはコードを厳格に解釈する strict モードがある。 [about:config] - [javascript.options.strict = true]この状態で、疑わしいコードを実行するとエラーコンソールに警告が出る(ロギングにつられてパフォーマンスも大きく落ちる)。 …

Firefoxで計算済みの背景色が取得できないケースがある

既知だろうから、これは自分用のメモ。 <html><head><title>checkbox bg-color</title> <style>.green { background-color: lime }</style> </head><body> <input id="tgt1" type="checkbox" checked="checked" class="green"></input> <input id="tgt2" type="radio" checked="checked" class="green"></input> <select size="1"> </select>

ローカルで動作するW3Cのテストスイートを公開します。

「全てパスした」とだけ書くと、あまり良くないことが起きそうなので、ローカルで動作するように修正したCSSセレクタのテストスイートを公開します。W3Cのテストスイート: http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/xhtml/index.html利用さ…

結実した

CSSセレクタに :notを追加実装し、名前空間を除くW3Cの互換性テストを全てパスした。

数値からカラーコード(#000000)を作る

(0x1000000 + num).toString(16).replace(/^1/, "#");

今からFlashも勉強する

http://www.sony.jp/products/Consumer/handycam/camwithme/main.htmlもっていかれたよ。ごっそりとね。

CSSセレクタの最大の欠点(Contextual Selector)はサポート可能か

id:vantguarde さんと、id:amachang さんが半年ぐらい前に http://web.g.hatena.ne.jp/vantguarde/20081030/1225341506さてさて、ひとつ残念なのが“Contextual Selector”という擬似クラスが結局導入されなかったこと。今のSelectors APIでは、「コンテキスト…

CSSセレクタで属性だけじゃなく、スタイルもクエリーできちゃうとすごく便利(かも)

「CSSセレクタって、CSSのルールで絞り込みはできても、CSS(スタイル)で絞り込みができないんだ…」って思ったことはありませんか?実験的なテーマになりますが、styleプロパティの値を、CSSセレクタでクエリーできるように構文を拡張してみました。 # 構文や…

Array かどうかを判定するいくつかの方法について

この日記はご指摘を元に再構成したものです。 昨日の続きです。jQuery1.3で、isArray や isFunction の処理が差し替えられています。 IE6で発生するメモリリークを回避するためのようです。isArray や isFunction などは基本的なロジックであり、かつjQuery…

jQuery1.3 がリリースされてます。

この日記はご指摘を元に再構成したものです。 ざっと見ました。 1.3β1のバグがいくつか修正されています。 ID,CLASSセレクタのUNICODE判定で16進数と10進数の勘違い 修正前: /#((?:[\w\u0128-\uFFFF_-]|\\.)+)/, 修正後: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,…

SlickSpeed が信用できない

SlickSpeed は 設定ファイル(config.ini)を修正することで、セレクタの評価順序を変更することができますが、先頭と最後に設置したセレクタのスコアがおかしくなるようです(速くなる) 順番を入れ替えるとこうなります 同じ実装(selector と keep_selector) …

正規表現のベンチマーク(String.match と RegExp.exec のざっくりとした違い)

2009-01-12追記 タイトル修正しました。 2009-01-14追記 String.indexOf と RegExp.test のスコアが逆に書かれてていたのを修正しました。 String.match ばかりで、RegExp.exec を使ったことがありませんでした。 ちょっと気になったので色々とベンチマーク…

Firebug 1.3 から 1.2.1 へ戻した理由

スクロールに酔ったから 1.2.1と比べて不安定な気がしたから(うまく表現できない) Firebugのスクリプトタブで、ブレークポイントが設置可能な行(Firebugがコードをパースし終わった行)は、行番号が緑になり太字になりますね。私の環境だけかもしれませんが、…

各ブラウザが返す色名(文字列フォーマット)の違いを吸収する

CSSセレクタで style を絞り込めるように機能を拡張している最中なんですが、document.defaultView.getComputedStyle(element).color ってブラウザ毎にフォーマットが違うので、まずはそれをあわせこむ部分の実装からやってます。 # IE だと currentStyle.co…

ソースコードをディアゴスティーニ方式でリリースするとか

毎週毎週メールで、最新のパーツが届くよ! しかも送料無料 途中から購読も可能! もちろん途中解約もOK! 毎号届くパーツ(ソースコードの一部)を組み合わせると、最後にはステキなプログラムが完成だ! 図解入りのソースコード解説書が付いてくるから、初心者の…

CSSセレクタにテコ入れした

# 昨日の日記の続きです。 Browser Test kQuery uupaa.js+ テコ入れ peppy(cache on) peppy(cache off) sizzle-0.9 jQuery 1.2.6 IE6 A0 248 153 287 294 338 369 A1 611 604 1447 1507 1420 1100 IE7(別PC) A0 144 116 - - 266 306 Firefox2 A0 294 237 138…

CSSセレクタ テコいれ中

→ ofkさんに抜かれたみたい。 → 加速装置投入。2〜6倍速に。 → W3Cのテストで不具合発見(デグレ) → 再度暴速化 → またも別のデグレ発見 → んもぉー。 → ふてね。 → 小人さんが夢の中で良い方法を思いついてくれたよ! → むっくり起きて実装再開 → リビジョン…

ベンチマークを完走させる

ベンチマーク中に「なんかビジー。スクリプト止めとく?」なダイアログで、台無しになってしまうことがあります。今日はそれを回避する設定をご紹介。 IE: レジストリに新しい値を追加することで可能 KEY: HKEY_CURRENT_USER/Software/Microsoft/InternetExpl…

IE とそれ以外のブラウザを切り分けている判定の数が 5.6 倍違う

uupaa.js には、UserAgent の情報を保持する Hash があります。 uu.ua = { ie: !!document.uniqueID, // IEでtrue opera: !!window.opera, gecko: /Gecko\//.test(navigator.userAgent), webkit: /WebKit/.test(navigator.userAgent) }; uu.ua.ie で切り分け…

CSSセレクタで計算済みのstyleプロパティの値も検索できたら便利かも

検索対象は、style属性に書かれている値ではなく、リアルな(計算済みのstyleプロパティの)値 # IEなら、element.currentStyle, それ以外なら document.defaultView.getComputedStyle(element, "") の値 var nodeList = document.body.querySelectorAll("div …

UnitTest もどきを書いてみた

uupaa.js にはテスト用のフレームワークがありませんでした。 uupaa.js 0.7 は例により、フルスクラッチ(スクラップ?) & ビルド なので、いよいよテスティングフレームワークが必要に。JsUnitなどの導入も検討したのですが、好みと違ったので uupaa.js の機…

getter と setter は混ぜないで

代入と参照 変数に値を設定し取得するには = を使います。 obj.name = "setter"; // obj.name に "setter" を設定する var a = obj.name; // obj.name の値を取り出し a に代入する すごく自然ですね。 = が左にあるか右にあるかで、コンパイラは代入(lhs)か…

Googleトレンド in JavaScript ライブラリ

今年もがんばります。 さて 6ヶ月ぐらい前から、JavaScript ライブラリ界隈ってどんな空気で誰が支配してるの? が気になり始めました。 んで、jQuery, Prototype.js, Ext.js MochiKit, Mootools の検索ノード数や検索キーワードを記録してました。 # YUI と …