JavaScript
HTML や CSS ファイルを保存した時にブラウザを自動的にリロードする JavaScript ライブラリ AutoReloader.js を書きました。mala さんが昔書いていたものの焼き直しですが…。 ダウンロード https://github.com/tanabe/AutoReloader-js 使い方 下記の 1 行を…
MacOS X (Snow Leopard) に PhantomJS を入れました。Build Instructions の通り。 git clone git://github.com/ariya/phantomjs.git && cd phantomjs && git checkout 1.1 Qt を落とす。 qmake -spec macx-g++ && make in/phantomjs.app/Contents/MacOS/pha…
Google の検索結果ページを日本語と英語で切り替えるユーザスクリプト (昔書いたもの) を、現在の Google の仕様に対応させました。 インストール Google の検索結果ページのどこでもよいのでダブルクリックすると切り替わります。 Firefox と Chrome で動作…
キーボードショートカット (ホットキー) を簡単に定義できる Hokke.js という JavaScript ライブラリを書きました。名前の由来は、Hotkey → Hokke です。私はホッケの塩焼きが好きです。 Hokke.js デモページ ソースコード 使い方 インタフェースは、3 つあ…
JavaScript の関数に JSDoc 形式のコメントを追加する Vim スクリプトを書きました。 tanabe/WriteJSDocComment.vim - GitHub 実行例 JavaScript の function が書かれている行にカーソルがある状態で :call WriteJSDocComment() を実行すると下記スクリーン…
Yahoo!路線情報で、「出発地」と「目的地」の入力値を保持する user script を書きました (以前書いた物の改修)。 インストール AutoFillYahooTransit.user.js 主な内容 ブラウザの「戻るボタン」で出発地/目的地が消えなくなります。 Firefox/Chrome で動き…
CentOS に jslint.vim を入れました。コーディング中にリアルタイムで文法チェックをしてくれます。それほど重くもないですし便利です。 インストール JavaScript のインタプリタ (SpiderMonkey、Rhino、node.js) が必要なのでインストールはそこから。CentO…
JohnnyDepp.js という JavaScript のスクリプトローダを書いてみました。依存性 (DEPendency) を解決するところから JohnnyDEPp.js です。名前だけはとてもクールだと思います。 一点注意。世の中には、LABjs をはじめ、ControlJS、Head JS など JavaScript …
非同期処理を逐次処理するための JavaScript ライブラリを書きました。 デモページ ソースコード Processor インタフェース var processor = new Processor(); processor.add(p1).add(p2, p3); processor.execute(); 上記の例では Processor に p1 〜 p3 の…
『JavaScript Patterns』より、prototype ベースの継承方法いろいろ。 1. 最もベーシックな prototype 継承 子クラスの prototype に親クラスのインスタンスを指定します。 function Parent(name) { this.name = name || "Adam"; } Parent.prototype.say = f…
下記の bar() に渡す無名関数内の value が、どの値 (1 か 1000) にバインドされるかという問題を「funarg 問題 (Function Argument Problem)」というらしい。 function foo(value) { return bar(function() { return value * 2; }); } function bar(func) {…
複数ページ用の window.onload ハンドラのコードを 1 ファイルにまとめる jQuery plugin を書きました。WEB + DB PRESS 60 号に載っていた URL Dispatcher のコードを書き換えたものです。 tanabe/jQuery-Router - GitHub デモページ 使い方 $.route() の引…
ランダムな英数字の文字列を生成する JavaScript ライブラリを書きました。テスト用英数字の生成やパスワードが決められない時などにご活用ください。 tanabe/random-string-generator-js - GitHub デモページ 基本的な使い方 引数無しで実行すると、32 文字…
『JavaScript Patterns』を購入しました。『JavaScript: The Good Parts』や『High Performance JavaScript』に続く、信頼と実績の Oreilly x Yahoo! Press シリーズ。どの本も Oreilly にしては薄くて読みやすく、プロフェッショナル向けの実践的な内容が特…
ある要素を画面下や画面右などに配置する jQuery プラグインを書きました。「ページトップへ戻る」ボタンやウィジェットなどを固定位置に表示させたいときに使います。 tanabe's jStageAligner at master - GitHub デモページ 基本的な使い方 固定位置に表示…
Firefox の Cookie の挙動でハマったのでメモしておきます。Set-Cookie 時にドメインを指定する/しないで、保存される Cookie が異なるようです。 ドメインを指定しない場合 レスポンスヘッダの Set-Cookie で、ドメインを省略した場合は、保存された Cookie…
下記の 2 つのコードはプログラムとして結果は等しくなりますが、文脈が若干異なるような気がします。 コード 1 if (condition) { return A; } return B; コード 2 if (condition) { return A; } else { return B; } 私はコード 2 のスタイルで書きます。コ…
jQuery/Prototype.js で、処理を委譲する方法。AS2 で言うところの Delegate.create です。 やりたいこと 下記のコードで、cat.showName() を実行した際に dog を表示したい。 var dog = { name: "dog", showName: function() { alert(this.name); } }; var …
HTML5 の Web Storage (window.localStorage) についてのメモ。 対応ブラウザ ブラウザ バージョン Internet Explorer 8+ Firefox 3.5+ Firefox 3.5+ Safari 4.0+ Goole Chrome 4.0+ (3.0+?) Opera 10.5+ Chrome の部分が怪しい。文献によっては「3.0 以上」…
Yahoo!路線情報で検索結果を表示した後にブラウザの「戻るボタン」で戻ると出発地と目的地が消えてしまいます (Firefox)。そのストレスを解消するユーザスクリプトを書きました。 YahooTransitAutoFill.user.js 仕組み Greasemonkey の GM_setValue と GM_ge…
Amazon の商品ページ URL を必要最低限の長さにするユーザスクリプトを書きました。 ShowAmazonProductShortURL.user.js 使い方 商品ページをダブルクリックするとアラートに短めの URL が表示されます。それをコピーします。 例えば、http://www.amazon.co.…
HTML のリンクに設定されたテキストの "ある一部だけをマウスで選択してコピーしたい" ことが、一年に一度くらいあります。 それを実現するユーザスクリプトを書きました。任意のリンクを解除するだけですが。 RemoveAnchor.user.js 使い方 リンクのテキスト…
ページのトップにスクロールするユーザスクリプトを書いた。ページ上部 (100px) 未満をダブルクリックするとページトップにスクロールします。 Home キーを押せば済む話だが、ネットサーフィンはマウスでポチポチすることが多いので…。 ToPageTop.user.js //…
以下の条件で Windows 版 Safari 3.2.2 が 100% 落ちる。 ExternalInterface 経由で、SWF 自身が置いてある HTML 要素を削除する。 フレームスクリプトで ExternalInterface を呼び出す。 その SWF の wmode が transparent である。 ActionScript //in cras…
ExternalInterface でハマった。 var hoge = document.createElement("hoge"); hoge.innerHTML = "
文字列の連結を配列で行うと、タグを書くときにコードが見やすくなる。 document.getElementById("hoge").innerHTML = [ "<p>", "<span>", "Hello World", "</span>", "</p>" ].join("");
配列の要素をどんな整数のインデックスでも取得できる関数を書いた。 function getItemAt(target, index) { if (index < 0) { return arguments.callee(target.concat().reverse(), -(index + 1)); } else { return target[index % target.length]; } } usag…
Excite 翻訳のページでテキストエリアにフォーカスを当てる Greasemonkey スクリプト。 ExciteTranslationFocusTextField.user.js // ==UserScript== // @name Excite Translation Focus TextField // @namespace http://bitmap.dyndns.org/ // @description…
JavaScript: The Good Parts より、コード断片のメモ。 p.39 Closure 以下のような HTML において、a ~ b をクリックしたときに、0 ~ 3 を出力したい。 <ol> <li>a</li> <li>b</li> <li>c</li> <li>d</li> </ol> 何も考えないで書くとこうなる。nodes には li のコレクションが渡っている。 var addHanld…
Google の検索結果ページに 10 キーのショートカットをつける Greasemonkey スクリプトを書いた。 GoogleResults10KeyShortcut.user.js // ==UserScript== // @name Google Results 10Key Shortcut // @namespace http://bitmap.dyndns.org/ // @description…