我的问题是,我不能上升到浏览器窗口上下文后创建和使用mozrepl进入一个新的窗口,如何做到这一点?
ubugnu@spin-foam:~$ telnet localhost 4242 | tee -a .repl_log
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Welcome to MozRepl.
- If you get stuck at the "...>" prompt, enter a semicolon (;) at the beginning of the line to force evaluation.
- If you get errors after every character you type, see http://github.com/bard/mozrepl/wikis/troubleshooting (short version: stop using Microsoft telnet, use netcat or putty instead)
Current working context: chrome://browser/content/browser.xul
Current input mode: syntax
repl> repl.print(document.getElementById('toolbar-menubar'))
[object XULElement]
repl> win = open()
[object Window] - {window: {...}, document: {...}, external: {...}, getInterface: function() {...}, console: {...}, sidebar: {...}, performance: {...}, ...}
repl> repl.enter(win)
[object Window] - {window: {...}, document: {...}, InstallTrigger: {...}, external: {...}, webkitNotifications: {...}, getInterface: function() {...}, console: {...}, ...}
repl> repl.print(document.getElementById('toolbar-menubar'))
repl> repl.print("how to ascend to the browser window context?")
how to ascend to the browser window context?
repl> ?
我对mozrepl一点也不熟悉。但是从我在你的代码中看到的,也许你可以尝试win.opener
来访问你所在的当前窗口的打开器。如:
repl.enter(win.opener);
或者你可以尝试访问类型为"navigator:browser"的最新窗口,如果你可以访问组件(Cc,Ci,Cu):
var window=Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser");