文書中のXPathだとかセレクターを取得するGreasemonkey

必要に迫られてようやく作った。 // ==UserScript== // @name XPath Finder // @namespace userscript // @include * // ==/UserScript== function $X(exp, context, type) { if (context && !context.nodeType) { type = context; context = null; } if (!c…

全てのサイトでGM_xmlHttpRequestを使うスクリプト

過去にも似たような試みはあったけど、今のバージョンだとunsafeWindowからGM_xmlhttpRequestを呼び出した瞬間アウトで、できませんでした。でも、どうしても使いたい!という局面に当たってしまったので、試しに作ってみました。インストールすると、全ての…

Julian用認識文法を生成する

公式のリファレンスに従うだけなのに、はまったので、メモ。 Juliusの再コンパイル % make distclean % ./configure --enable-julian # 語彙サイズが大きくなりすぎるときは --enable-words-int というオプションが必要 % make % make install % make instal…

Windowsでjulius-simpleを実行してみる

julius-4.1.2/julius-simpleをmakeするだけなのにはまったので、メモ。 環境整備 素直に公式の情報に従えばよい。cf. http://julius.sourceforge.jp/index.php?q=doc/install-mingw.html コンパイル $ makeするだけなのだが、通らないので(記事書いた現在)…

jQueryを少し便利にする5つの関数

jQueryはよく使うのだけど、ちょっとだけ不便なときがあったので、それに対応する関数を書いてみた。 クラスを生成する var Class = $.klass({ init: function (a) { this.a = a; }, view: function () { alert(this.a) } }); initがコンストラクタとして機…

userChrome.jsも無しにブックマークツールバーのボタンに好きなfaviconを使う

ブックマークツールバーのボタンに好きなfaviconを使う - Cherenkovの暗中模索にっきより。 bookmarks.html/jsonを書き換える方法はめんどくさい。 ってあるけど、ブックマークのインポート使えば簡単にできるよ。 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> <DL> <DT></dt></dl></meta>

大休止

自分の私用が忙しいので、お休みします。セレクター競争楽しかったです。

jQueryやPrototype.jsのセレクタ関数の動作速度を二倍にするライブラリを作りました

js

と言っても、前々から作っているセレクタ関数が依存無しで簡単に切り出せそうだったから、切り出しただけです。 http://kquery.if.land.to/ksk.js 動作ブラウザはIE5.5以上です。これを導入するとIE5でも動作します。 使い方 ksk("div"); // divタグを取得し…

CSSセレクタライブラリのまとめ

js

すぐにuupaa-selectorに負けたのですが、Quick Phaseを露骨に充実させるのはkQueryの目指す方向じゃないので、もうちょっと探索方法とか見直せるところを探そうかなって思っています。ちなみに今のバージョンは前のバージョンよりも少し遅くなっています。ま…

これはcanvas実装という方向か?

http://www.google.co.jp/search?hl=ja&q=VML+IE5 IE5もVML動きます。……どう考えても、これも再発明しそうな予感です。いや、まぁ理由はあるんだ。何を作りたかったというと、 IE5で動いて jQueryライクで event関連関数と animate関数と Plotr使いたい って…

Selectors API以降のセレクタ実装 - jQueryとSizzleとuupaa-selectorとkQuery

js

低速復活中なので、kQueryを細々と書き直しました。 http://kquery.if.land.to/slickspeed2/system/kquery.js URLからもわかるように大好きなSlickSpeedも置いておきました。 http://kquery.if.land.to/slickspeed2/ http://kquery.if.land.to/slickspeed2/s…

Conditional CommentsでIE以外に表示の書き方

IE以外に表示します カギ括弧が必要だったりして、普通の条件分岐コメントと比べたら、トリッキーな感じがするので注意が必要です。

低速復活中

最近は某所でRubyとかPHPを書いている気がします。JavaScriptはちょこっとです。もっぱら使っているのはjQueryとPrototype.jsです。気がついたら、すごいことになっているuupaa.jsは使いたいんだけど、今のところ牛刀割鶏になりがちなので、使う機会が無いの…

脆弱性通報について

IPAのページから行える。 https://isec.ipa.go.jp/vuln/index.html が、しかし、IEのパッチレベルとかどうやって調べればいいのかわからないものまで、入力必須項目となっている。そのうえ、再現状況も細かく書かないといけないらしいが、あいにく僕は一台の…

CSSXSSを改良した?手法でmixiのpost_keyを抜き取るデモを作りました

IDを抜き取る方法が思いつかなかったので、「はまちちゃん」の書き込みの二年来の再来とはいきませんが、セキュリティーホールだと思うので、早めに書いておきます。(修正済みです) 実証コード http://k75.s321.xrea.com/cssxss/mixi.htmlパッチ済みのIE6…

jQueryの$("E F")と$("E").find("F")は等価じゃない

ちょっと前にはまったから、メモメモ。jQueryは重複する要素のマージをそこまでまじめに行わない。まぁ、マージするということは要素サイズ回のループを行うわけで速度のためには仕方ない。そんなわけで、"E F"をパースするときはタグをマージしつつやるが、…

DOMElement#uniqueIDではまること

js

要素を区別するために固有のIDをつける必要がある。jQueryだと$.data(obj)という方法でやっている。やっていることはobj["jQuery" + (+new Date)]という値に連番を入れることなんだけど、これだと関数呼び出しのコストが半端無いことになる。というわけで、$…

セレクターをちょっとだけ作り直した

http://kquery.if.land.to/slickspeed/ http://kquery.if.land.to/slickspeed/system/kquery.js 精度が改善しました。速度はちょっと遅くなったかもしれません。今までは$.findでDOMElementの配列を返した物で計っていましたが、それは改めてK(selector)でjQ…

POST送信のページをブックマークするブックマークレット

あるサイトでは検索がPOSTで送信しないと結果が返ってこないので、ブクマできない。というわけで、ブクマするためのブックマークレットを作った。 javascript:for(var i=0,f;f=document.forms[i];++i)if(f.method.toLowerCase()=="post")(function(f){f.onsu…

ビルトインオブジェクトに拡張したい10のメソッド

js

ビルトインオブジェクトをこねくり回すのはあまり好まれない方法だけど、僕は好きなので、割とやりたくなる。というか、やる。でも、やりはじめると際限なく拡張したくなってしまう。というわけで、最近は、とりあえず10と決めているので、それを書いてみる…

DOMでFlashを再生するobjectタグを生成する際の注意点

多くのウェブブラウザ <object type="application/x-shockwave-flash" data="test.swf" width="128" height="128"><param name="movie" value="test.swf" /></object> こんなコードをcreateElementで作って、appendChildしたら再生される。 シェアが一番大きいけど、なんというか、微妙なブラウザ

半透明PNGとopacityでIEではまった

半透明PNGが背景に設定されている要素をフェードインさせようと思ったが、IEだと半透明部分が黒くなるので、ちょっと試した。 http://kquery.if.land.to/test/png/ 一つ目はdivに背景とopacity(IEにはfilter)を設定した。IE7だと半透明部分が黒くなる。 二…

最近のCSSの書き方

css

IE5を気にするとき、IE5.5を気にするとき、IE6以上で良いときで使い分ける。 HTML <link rel="stylesheet" type="text/css" href="styles.css" media="all"> styles.css @import url("all.css"); /*全体的なレイアウトの調整。フォントサイズとリンク色とか。IE4も読ませる*/ /*以下はIE6+向けのとき。中身は@mediaで絞る*/ @import</link>…

jQueryをIE5で動くように再発明しているわけ

自分のウェブサイト(非プログラマー向け)にjQueryで機能追加行った ↓ いいという意見もあるが、いまいちという意見もある(遅いとか) ↓ Google Analyticsをつけてみた ↓ ブラウザ内訳でIE6が50%、IE7が30%、IE5.5が3%のシェアを占めていることが分かる(…

==と===のまとめ

高速化 - uupaaの開発日記で==よりも===が良いと知る。 ↓ 早速実験するけど、速くならないよ、と記事を書いた。 ↓ 等価演算子と厳密等価演算子 in ECMA-262 3rd Edition - 0x集積蔵で型が違えば、厳密等価演算子の方が有利だと説明があった。 ↓ 納得しつつ、…

JavaScriptで文字列比較は抽象的等価比較の方が速い

以下は間違っているのでこれを参照して下さい。等価演算子と厳密等価演算子 in ECMA-262 3rd Edition - 0x集積蔵でString同士をやっていないので、やったら、結果が逆転しているような気がする。ただ、アルゴリズムを見る限りはどちらも同じような感じの経路…

厳密比較演算子が必要な場面

js

つまり、比較演算だと同じものとされるものの組み合わせ。 null==undefined ==false、==0、[]=="" false==[]、false==0、false==""、false=="0" 0==[]、0==false、0==""、0=="0" ""==[]、""==false、""==0 "0"==false、"0"==0 空のオブジェクトは含まれない…

え?

<html> <head> <style></head></html>

等価演算子(==)と厳密等価演算子(===)

PHPでは速くなるとあったので、一応、検証してみた。 結論 PHPではできる限り、厳密等価演算子を使うべき。

等価演算子(==)と厳密等価演算子(===)

以下は間違っているのでこれを参照して下さい。高速化 - uupaaの開発日記で高速化について書いてあった。最初のfor文の長さの参照とインクリメントの話とループ展開は知っていたけど、厳密比較演算子も速くなるというのは初めて知った。演算子にそんなに違い…