jsh*_*erk 4 firefox applescript osx-lion macos
我正在使用 OS X Lion v10.7.3 运行 Firefox v10.0.1
在 Apple Dock 中,您可以右键单击 Firefox 图标并选择 NEW,一个新的 Firefox 窗口将打开。
从终端,我试过
open -n /Applications/Firefox.app
Run Code Online (Sandbox Code Playgroud)
但它说(假设 Firefox 已经打开)
Firefox 的副本已经打开。一次只能打开一份 Firefox。
如何从终端的命令行在 Firefox 中打开一个新窗口?
为此,您需要使用 AppleScript。理想的解决方案是使用 Firefox 的内置函数,但它没有提供——它的 AppleScript 字典非常有限。所以我们必须模拟键盘快捷键。
打开您的~/.bash_profile并添加以下 shell 函数:
function firefox-window() {
/usr/bin/env osascript <<-EOF
tell application "System Events"
if (name of processes) contains "Firefox" then
tell application "Firefox" to activate
keystroke "n" using command down
else
tell application "Firefox" to activate
end if
end tell
EOF
}
Run Code Online (Sandbox Code Playgroud)
这将调用osascript,它执行 AppleScript 命令,然后激活 Firefox,然后模拟?N按键——但前提是它已经在运行。如果没有,Firefox 只会被打开,所以你不会得到两个新窗口。此外,显然您可以交换"n"到"t"以获取新标签。
保存~/.bash_profile文件并输入source ~/.bash_profile以重新加载它。然后,只要您需要一个新的 Firefox 窗口,就调用以下函数:
firefox-window
Run Code Online (Sandbox Code Playgroud)
当然,您可以随意更改函数的名称。
如果您希望能够从命令行传递 URL 参数,请参阅此答案:How to open a new Firefox window with URL argument。
~/.bash_profile是所有自定义函数应该驻留的地方。如果文件不存在,您可以创建它。
Shell函数比别名更强大,例如它们也允许您使用参数。理论上你也可以传递新窗口的 URL,然后告诉 Firefox 用OpenURLorGet URL命令打开它——但我还没有尝试过。
关于使用的语法:这<<-EOF是一个here 文档,可以更轻松地将多行输入传递给osascript. 输入将被解析,直到EOF标记再次出现。
| 归档时间: |
|
| 查看次数: |
4282 次 |
| 最近记录: |