我的代码看起来像这样
tell application "Firefox"
open location "http://rubyquicktips.tumblr.com/"
end tell
如果我打开了Firefox,链接将在一个新的选项卡中打开。但我想让链接在一个新的Firefox窗口中打开。如何实现?
我的代码看起来像这样
tell application "Firefox"
open location "http://rubyquicktips.tumblr.com/"
end tell
如果我打开了Firefox,链接将在一个新的选项卡中打开。但我想让链接在一个新的Firefox窗口中打开。如何实现?
这个可以实现,但会在第一个标签页打开你的欢迎页面...
tell application "Firefox" to activate
tell application "System Events" to keystroke "n" using command down
delay 3
tell application "Firefox"
open location "http://rubyquicktips.tumblr.com/"
end tell
试试这个...
tell application "Firefox"
OpenURL "http://rubyquicktips.tumblr.com/"
end tell
tell application "Firefox" to activate
tell application "System Events" to keystroke "n" using command down
tell application "Firefox"
OpenURL "http://rubyquicktips.tumblr.com/"
end tell
我不是非常熟悉AppleScript,但是我想打开一个全新的默认窗口。这里有一个可行的方法:
tell application "System Events"
tell process "Firefox"
click menu item "New Window" of menu "File" of menu bar 1
end tell
end tell
可选地,要专注于新窗口,请在此后添加以下行:
tell application "Firefox"
activate
end tell
这将打开一个默认的新窗口。可能有更好的方法。
不依赖于固定的延迟时间
与语言无关(如按键发送方法);也就是说,它还可以使用本地化菜单和命令名称(例如,“Datei”代表“文件”等)
Terminal.app
,但即使在开发脚本时运行脚本,也必须授权Script Editor.app
。tell application "Firefox"
# Make Firefox frontmost.
activate
# Wait until it is truly frontmost.
repeat while not frontmost
delay 0.1
end repeat
# Open a new window using GUI scripting (requires authorization for assistive access),
tell application "System Events" to tell application process "Firefox"
set windowCountBefore to (count of windows)
# Click on File > New to open a new window, but locate it
# by keyboard shortcut rather than by name, so as to also work
# with localized menu names.
tell menu 1 of menu bar item 3 of menu bar 1
click (first menu item whose value of attribute "AXMenuItemCmdChar" is "N" and value of attribute "AXMenuItemCmdModifiers" is 0)
end tell
# Wait for the new window to appear.
repeat while (count of windows) = windowCountBefore
delay 0.2
end repeat
end tell
# Finally, open the URL.
open location "http://example.org/"
end tell
注意:
通常情况下,如果 Firefox 反应良好,则这应该可靠地工作。但是,通过实现等待循环的超时,可以改进代码。
Firefox 不是最快打开新窗口的浏览器,因此 Firefox 将首先激活,新窗口仅在大约一秒钟后出现。
新窗口将总是有一个空的第一个选项卡,并且 URL 将在第二个选项卡中打开。
关于看起来不同寻常的tell application "System Events" to tell application process "Firefox"
结构的附注:
tell application"Firefox"
)。System Events
应用程序的上下文中完成(tell application "System Events"
),并且在该上下文中,必须针对 Firefox 进程(tell application process "FireFox"
)。虽然您可以编写两个嵌套的 tell
块,但为方便和简洁起见,在此处将它们合并为一个块。do shell script "open -n -a Firefox"
我使用以下简单的shell脚本
来打开不同标签页中的多个火狐浏览器页面
,并且它对我有效。
也许你需要稍微调整一下睡眠时间。
打开 Automator
选择:应用程序
点击 选择
搜索 运行 Shell 脚本
点击并将其拖到 右侧窗口
在 Shell
中选择 /bin/bash
在“传递输入”中选择 作为参数选择
粘贴
以下代码
#!/bin/bash
open -a Firefox https://stackoverflow.com
sleep 0.5
open -a Firefox https://apple.com
sleep 0.5
open -a Firefox https://google.com
Command + S
保存
给它一个名称和位置来保存。
选择文件格式:应用程序
保存
添加
到您的 dock
(适用于 MAC os),并 享受
(适用于每个操作系统 :)!!