« 2009年07月 | メイン | 2009年09月 »

2009年08月 アーカイブ

2009年08月05日

JSでthisを返す拡張をしておくと便利? ※ただしFirefoxにかぎる

DOM操作では以下のように setAttribute してすぐメソッドを呼べない
elm.setAttribute( "name", "value" ).getAttribute( "name" );
なので、メソッド名に"_"を付けて実行するとthisを返す拡張をしてやると
Object.prototype.__noSuchMethod__=function(methodName,argsArray){
    if(methodName.match(/^_[^_]/)){
        var method=methodName.substr(1);
        if(this[method]){
            this[method].apply(this,argsArray);
            return this;
        }
    }
    throw new TypeError(methodName+" is not a function");
};
elm._setAttribute( "name", "value" ).getAttribute( "name" );
あれ?
ネタのつもりが結構便利かも。
これってどうなの?
教えてえらい人!

2009年08月19日

エゴサーチにもってこい? ブログのはてなブックマーク数を常に表示するユーザスクリプト「はこべ」

自分のblogに付いたはてなブックマークの数が気になって仕方がない時ってありますよね。
Entryを書いた直後なんかは特に。
表示しているページのはてぶ数を表示するようなaddonは見かけるのですが、特定のsiteのはてぶ数を表示し続けるようなものが見つからなかったので、Greasemonkeyを書きました。
どこでもはてなブックマーク数「HAtena Bookmark COunt Everywhere」の頭を数文字ずつとって並び替えて「hacobe」です。
え?
名前が同じ人がいる?
そんなMacPortsの人なんて知りません。
hacobeに登録されたurlのはてなブックマーク数をブラウザの左下に常に表示し続けます。
urlはGreasemonkeyのユーザスクリプトコマンドメニューから登録します。
登録できるurlは二種類、pageとsiteです。
pageは、特定のページについているはてぶ数を表示させる事ができます。
siteは、特定のサイトについている全はてぶの数を表示させる事ができます。
詳しくは次のリンク先をご覧下さい。
複数のページ・複数のサイトを表示させたい場合は、urlをスペースで区切って登録して下さい。
左下を常に占有すると邪魔な事もあるため、マウスをあわせている時は表示されないようにしています。
また、ページを開く度に情報を取得しにいくのも鬱陶しいので、10分以上間隔をあけるようにしています。
Firefox3.5から導入されたJSONオブジェクトやCSSのrgbaによる色指定等を使っていますので3.5以上の環境が必須です。
また、E4XやforEach等も積極的に使ってみました。
20090819 追記1
E4Xの仕様をなんとなくしか理解していなかったのでちょっと苦労しました。
id:nanto_vi さんがまとめた「E4X in Firefox」というページには大変お世話になりました。
あと、随分前にはてぶしたE4Xの邦訳も id:nanto_vi さんでした。
Wikipediaからもリンクがあって驚き。

2009年08月29日

「Twitterにも絵文字が欲しい」に応える(?)グリモン「drawtter」

とてもシンプルなコマンドで絵を描く事ができるGreasemonkey「drawtter」をリリースしました。
Twitter上で使う事を想定していますが、どこのサイトでも使用できます。できるだけ少ない文字数でコマンドが描けるようにデザインました。
コマンドを「DW:」に続けて書く事で描画させることができます。またコマンドを連続して指定することもできます。文章中でもコマンドを認識します。
DW:をつける
コマンドの連続使用
DWは連続させることができる
文中の例
コマンドの詳細は以下。
コマンド内で使用できる値は「距離」と「角度」です。
距離 1から99までを指定可能です。描画領域を100%とした時の距離と一致します。例えば、中心を示す点は「50,50」となります。
角度 0から12までを指定可能です。時計の時間の方向に一致します。例えば、右方向を示すには「3」を使用します。
コマンド
今のバージョンでは、コマンドは4種類あります。但し、「点」については仕様が固まっていないため非推奨です。
L 線を描画
L[距離 開始点のx座標],[距離 開始点のy座標],[距離 終了点のx座標],[距離 終了点のy座標]
ex.
点1(20,30)から点2(40,50)までの線を描画
L20,30,40,50

C 円を描画
C[距離 中心のx座標],[距離 中心のy座標],[距離 半径]
ex.
点(45,65)を中心とした半径20の円を描画
C45,65,20

A 円弧を描画
A[距離 中心のx座標],[距離 中心のy座標],[距離 半径],[角度 円弧の開始角度],[角度 円弧の終了角度]
ex.
点(50,70)を中心とした半径20の円弧を、3時の方向から9時の方向まで描画
A50,70,20,3,9

P 点を描画(非推奨)
P[距離 点のx座標],[距離 点のy座標]
ex.
点(10,30)を描画
P10,30

はじめて訪れたサイトで「ここがxxxの世界か...」とつぶやくグリモン

それだけです。
全部のサイトを覚えておくと大変なことになると思うので100を限界にしています。
一番古いものから忘れていくと人間っぽくないので、古いサイト程忘れやすくしています。
頻繁に表示されてしまい非常に鬱陶しいので、アンインストールする事をお勧めします。
Google

タグ クラウド