JavaScriptコンソールへのデバッグログの出力
FirefoxのエクステンションFireBugに出力するなら次のような文で可能。
console.log("hello world");
Chromeでも同じコードが使える。
Objectに対してどのようなメンバがあるのかを調べるには
dump = “”; for (var i in obj) { dump += obj[i] + “\n”; }
のように、in演算子ループすればよい。
prototype
function MyClass() {
}
MyClass.prototype.a = 1;
各インスタンスのメンバ変数のデフォルト値を設定したければprototypeを使う。prototypeの値はインスタンスで値が設定されるまで参照されるが、一度設定されると、次からはそちらが用いられるようになる。
greasemonkey user scriptの実行について
Greasemonkey用に書かれたuser scriptをVenkmanでデバッグできるかという質問に対しての回答がこれ。
Greasemonkeyのスクリプトは、greasemonkey.jsのComponents.utils.evalInSandbox()メソッドで実行される。このevalInSandbox()メソッドはC++で実装されているため、Venkmanではデバッグできない。
document.selection.type
文字列を選択している場合、document.selection.typeは、’text’になる。 何も選択していない場合は、none。
HTML要素の取得
document.getElementById(‘idstr’)が便利。HTML要素のオブジェクトが取得できる。
キー入力の検出
-{text function keyin() { return false; } <onKeyPress=”return keyin()”> ~~~
onKeyPressでfalseを返せばキー入力はなかったことになる。 キー入力イベントの情報は、変数event(グローバル変数か?)で取得できる。
-:html # SPAN .innerHTML 内側のHTMLテキスト
TEXTAREA
入力テキストは、element.valueで取得できる。
