我的问题是,在使用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> ?
答案 0 :(得分:1)
我根本不熟悉 mozrepl 。但是从我在你的代码中看到的,也许你可以尝试win.opener
来访问你当前窗口的开启者。喜欢:
repl.enter(win.opener);
如果您可以访问组件(Cc,Ci,Cu),您可以尝试访问“navigator:browser”类型的最新窗口:
var window=Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser");