2010-01-01から1年間の記事一覧

Bookmarkletで画像ビューア

Bookmarklet用の簡単なビューアVersion0.1(といっても1066文字もある・・・) 機能: 実行すると、ページ内の<img>要素を順番に表示。 <img>要素が<a>要素に囲まれている場合は、<a>要素ごと表示。 Right, Leftで画像切り替え、Escでビューア終了。ビューア終了後、vで再度実</a></a>…

DOMContentLoadedイベントのイベントターゲットを調べる

document.addEventListener('DOMContentLoaded', ...)という記述と window.addEventListener('DOMContentLoaded', ...)という記述を見たので、どっちが正しいのだろうと思い、チェック用のHTML+jsを作成。 結果は、(IEを除く)どのブラウザでもdocumentがイベ…

function文とfunction式の違い

console.log(typeof fn1); // undefined console.log(typeof fn2); // function var fn1 = function(){}; function fn2(){} varによる変数宣言は、スコープに入ったとき変数の追加だけ行われ、宣言のある行で値の代入が行われる。それに対してfunction式で定…

配列の要素を検索

Array#searchとかあっても良さそうだけど、用意されていないようなので適当に定義。 /** * 配列から要素を検索 * @param a0 検索する要素またはテスト関数 * @return number 要素の添字。見つからない場合は-1 */ Array.prototype.search = function(a0) { i…

JavaScriptでコールスタックを取得

arguments.callee.callerが使える環境でのみ動作 コード function getCallStack() { var caller = arguments.callee, ret = []; while( (caller = caller.caller) ) ret.unshift(caller); return ret; } テストBookmarklet javascript:function f(a,b){a=[],…

Eclipse Helios(3.6)が起動せず、"Failed to create the Java Virtual Machine."というエラーが出る場合の対処法(Windows)

"eclipse.exe"と同じフォルダ内にある"eclipse.ini"を以下の方法で編集することで対処。 方法その1 "-Xmx512m"を"-Xmx256m"に変更 方法その2 "-vmargs"の前の行に -vm C:\Program Files\Java\jdk1.6.0_20\bin\javaw.exe (javaw.exeのパス)を追加 参考 Helios…

選択した範囲のURLをまとめて開くBookmarklet

Google Chrome 6.0.472.53 betaで動作確認。 厳密に動作を検証したわけではないので、予期せぬ動作をするかもしれません。 javascript:var r=getSelection().getRangeAt(0),b=r.startContainer,e=r.endContainer,t='childNodes',b=b[t][r.startOffset]||b,e=…

正規表現メモ

忘れがちなのでまとめておく。 基本的な部分はどこのサイトにでも載っているので割愛。 後方参照 $n,\nグループ化した部分文字列を後で利用 パターン内で/(A)b\1/ → AbAにマッチ 置換文字列内で/(A)b\1/, $1 → Aとなる 非格納グループ化 (?:…)内部でキャッシ…

JavaScript言語メモ

プロパティの属性について var宣言文で定義された変数はDontDelete属性がついており、delete演算子で削除することができない。 ArrayインスタンスのlengthプロパティなどはDontEnum属性がついており、for in構文で列挙されない。object.propertyIsEnumelable…

ツイートを読むのに必要な時間を表示するBookmarkletを140文字で書いてみた

元ネタ。 http://tt3000.blog12.fc2.com/blog-entry-15.html たった一行追加するだけでサイトの滞在時間を13.8%伸ばす方法・・・ | IDEA*IDEA http://briancray.com/2010/04/09/estimated-reading-time-web-design/ Twitterの自分のTL(https://twitter.com/home…

オープンアプリ(MIDP)アプリケーション開発環境を整える[Win+Eclipse]

オープンアプリはau用のJava製アプリのことである。他にdocomoのiアプリやソフトバンクのS!アプリも同様にJava製アプリだが、自分の携帯がauであるためオープンアプリの開発環境を整えることにした。auには他にBrewアプリがあるのだが、こちらは敷居が高い上…

統合開発環境 Eclipseについて

必要な環境 Windowsの場合、インストールは不要(解凍するだけ)。 Eclipseを動かすにはJavaの実行環境(JRE)または開発環境(Java 2 SDK)が必要。 バージョンごとの別称 バージョン 別称 由来 Eclipse 3.2 Callisto(カリスト) 木星の第4衛星 Eclipse 3.3 Europa…

コンストラクタは継承される

'; } } class Sub extends Base{} class Sub2 extends Base{ public function __construct(){} } $sub = new Sub('hoge'); // "hoge"と出力される $sub2 = new Sub2('fuga'); // 何も出力されない ?> 出力 hoge 子クラスで定義しない場合、親クラスのコンス…

例外クラス一覧

例外クラスツリー Exception |-- LogicException | |-- BadFunctionCallException | | |-- BadMethodCallException | |-- DomainException | |-- InvalidArgumentException | |-- LengthException | |-- OutOfRangeException |-- RuntimeException |-- Unexp…

Google Chrome拡張のマニフェストファイルまとめ

JSON中のコメントは実際にマニフェストを書くときは除去する(JSONの仕様にコメントは無い)。 不鮮明な部分は参考にしたページや公式リファレンスを確認する。 { //--- 必須 --- "name": <String>, // 45文字以内 "version": <versionString>, // 4つまでのドット区切りの数値(0〜655</versionstring></string>…

バッチファイルでコマンドプロンプト風スクリプト

ちょっと前に同じ実験班の人に教えてもらったのでメモ。 @echo off :start set /p command="%cd%>" call %command% goto start

プリミティブな文字列型(string型)に関する考察

console.log( "Error" === new String("Error") ); // false console.log( "Error" === String(new String("Error")) ); // true console.log( String.fromCharCode(0x41) === "A" ); // true (Chrome4 JavaScriptコンソールで確認) プリミティブな文字列(st…

整数値を1ずつカウントアップしながら生成

function E(n){ n = n || arguments.callee.n || 0; arguments.callee.n = n+1; return n; } 使い方 var errorCode = { NO_ERROR : E(0), TYPE_ERROR : E(), // 1 RANGE_ERROR : E(), // 2 NETWORK_ERROR : E(100), SERVER_ERROR : E() // 101 }; 2010/05/02…

エラー処理メモ

エラー情報を定義する意味 複数のエラーを一意に識別し、個々のエラーに対し処理を行う エラーの原因特定を助けるため エラー情報 識別子 (整数、識別子(文字列等)、例外クラス名などエラーを区別するのに用いる) メッセージ (人間に対する) データ (原因に…

Windows版PHP 5.3.2にPEARパッケージマネージャを入れる

PHP

ちょっと手間取ったのでメモ。以降はWindows版PHP5.3.2がインストールされているものとして話を進める。 PHPのインストールフォルダを{PHP}と記す。Windows版PHPにはインストール時にPEARパッケージマネージャが付属していないようなので、別途インストール…

Zend Server CE5.0 for Winをインストールしてみた

PHP

入れ方。以下、Windows版をインストールすると仮定する。実際に入れたときの環境はVista。 http://framework.zend.com/download/latestからZend Server CEのFree Downloadボタンを押す。 Zend Server - The fastest way to enterprise PHPの下部の(EXE) xx.x…

ドラマ「素直になれなくて」第1話 まとめページ等

まとめ等 http://wwwz.fujitv.co.jp/sunao/index.html ネットで話題のtwitterドラマ「素直になれなくて」のだいたいのあらすじと感想 - ネットナナメ読み - 山田井ユウキ - builder by ZDNet Japan realtimeweb.jp http://search.twitter.com/search?q=sunan…

IMEの単語登録を行うショートカットキー

1. 文字入力可能なテキストボックスにカーソルがある状態で、IMEをONの状態にする。2. [Ctrl+F10]を押す。するとメニューが表示されるので、単語の登録を選ぶ。 慣れたらIMEをON、[Ctrl+F10]→[W]ですぐに呼び出せる。 Google IME入れててデフォルトに割り当…

断食を抜け、朝食を食べに行こう。

javascript:fast:while(1) if( (new Date()).getHours() >= 6 ) break fast;

Google ChromeのUser Script, 拡張がインストールできない原因が分かった

Chrome Web Storeから拡張をインストールした場合は正しくインストールできるのに、サイト上やローカルに保存した.crx, .user.jsファイルがインストールできなかったので原因を調べたところ、Google Chromeのウィンドウサイズが小さい場合にインストール確認…

XPath調査結果

DOMツリーに対してXPathを実行 document.evaluate(xpathExpression, contextNode, namespaceResolver, resultType, result); 引数 意味 xpathExpression XPath式 contextNode 文脈ノード namespaceResolver 名前空間解決関数。HTML文書の場合はnull resultTy…

JavaScriptでプリミティブ型変数の参照渡し

オブジェクトのプロパティにセットして渡せばOK。 var a={ b: 1, c: "d" }; (function(a){ a.b = 2; a.c = "e"; })(a); alert(a.b+'/'+a.c); void(0); Bookmarklet形式 javascript:var a={b:1,c:"d"};(function(a){a.b=2;a.c="e";})(a);alert(a.b+'/'+a.c);v…

text-align=left, rightのときにの入力欄の左右に1pxの余白が入る謎

Google ChromeでCSSいじってたら、<input>の入力欄の左右に1pxの余白が(form, inputのmargin/border/paddingとは関係なく)入ることを見つけた。 Opera10.10とIE8はずれないが、Firefox 3.6とGoogle Chrome 4.xは1pxずれることを確認(全てWindows版)。 入力テキスト…

ちょっと役に立つかもしれないコメントの書き方

/*/ 奇数・偶数選択スイッチ (/を追加で偶数を、削除で奇数をコメントアウト) a /*/// 偶数 b /*/// 奇数 c /*/// 偶数 d /*/// 奇数 ... //*/ 終了コメント /*/// 任意の項目をコメントアウト (コメントアウトしたい行の直前の/を抜く) // 同時に1つしかコ…

Bookmarkletでクワイン

JavaScriptでクワイン(自己コード複製プログラム)って簡単に作れるんじゃないかなって思って書いてみた。 思った通り簡単だった。 javascript:(function (){prompt('','javascript:('+arguments.callee+')()')})() 参考。 クワイン (プログラミング) - Wikip…