JavaScriptメモ 
top

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で取得できる。

imported