2006年 10月 25日

FireBug の $x とかはどこにあるのか

>> dir(FireBugEval.api);
["$0","$1","$n","$","$$","$x","clear","inspect","dir"]
>> FireBugEval.expr;
"FireBugEval.expr;" //=> 実行中のスクリプト文字列

FireBugEval は一行実行するごとに毎回生成されてる。該当ソース (commandLine.js)

FireBugCommandLine.evaluate = function(expr)
{
    var win = FireBug.currentContext.window;

    var result = null;    
    win.FireBugEval = function(value) { result = value; }    
    win.FireBugEval.api = FireBugCommandLineAPI;
    win.FireBugEval.expr = expr;

    if (FireBug.debuggr.debugging && FireBug.currentContext.currentFrame)
        FireBug.currentContext.currentFrame.eval(this.evalScript, "", 1, {});
    else
        this.injectScript(this.evalScript, win);

    delete win.FireBugEval.api;
    delete win.FireBugEval.expr;
    delete win.FireBugEval;
    
    return result;
}