macos 使用 AppleScript 在新的 Safari 选项卡中打开 URL
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/2892622/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Open URL in new Safari tab with AppleScript
提问by Mark Szymanski
Is it possible to use AppleScript to open a link in a new tab in Safari?
是否可以使用 AppleScript 在 Safari 的新选项卡中打开链接?
回答by Tim Lewis
This will work:
这将起作用:
tell application "Safari"
tell window 1
set current tab to (make new tab with properties {URL:"http://www.stackoverflow.com"})
end tell
end tell
回答by rien333
I think this also does what you asked for, but it is much shorter and is less browser-specific:
我认为这也可以满足您的要求,但它更短,并且不特定于浏览器:
do shell script "open http://www.webpagehere.com"
This will open the specified URL in your default browser. And if you explicitly want to open it in Safari, use this:
这将在您的默认浏览器中打开指定的 URL。如果您明确想在 Safari 中打开它,请使用以下命令:
do shell script "open -a Safari 'http://www.webpagehere.com'"
回答by Lri
This should usually create a new tab and focus it (or focus an existing tab if the URL is already open):
这通常应该创建一个新选项卡并聚焦它(如果 URL 已经打开,则聚焦现有选项卡):
tell application "Safari"
open location "http://stackoverflow.com"
activate
end tell
It opens a new window if "Open pages in tabs instead of windows" is set to never though.
如果“在选项卡而不是窗口中打开页面”设置为从不,它会打开一个新窗口。
tell application "System Events" to open location
doesn't work with some URLs that contain non-ASCII characters:
tell application "System Events" to open location
不适用于某些包含非 ASCII 字符的 URL:
set u to "http://ja.wikipedia.org/wiki/漢字"
tell application "System Events" to open location u
--tell application "Safari" to open location u
--do shell script "open " & quoted form of u
This opens a new tab even when new pages are set to open in windows:
即使将新页面设置为在 Windows 中打开,这也会打开一个新选项卡:
tell application "Safari"
activate
reopen
tell (window 1 where (its document is not missing value))
if name of its document is not "Untitled" then set current tab to (make new tab)
set index to 1
end tell
set URL of document 1 to "http://stackoverflow.com"
end tell
tell application "System Events" to tell process "Safari"
perform action "AXRaise" of window 1
end tell
set index to 1
doesn't raise the window, but it makes the window appear as window 1
to System Events, which can AXRaise
it.
set index to 1
不提升窗口,但它使窗口显示为window 1
系统事件,它可以AXRaise
。
回答by Pascal
I've been using the following script to open hundreds of docs into tabs in a single window.
我一直在使用以下脚本在单个窗口中将数百个文档打开到选项卡中。
tell application "Safari"
tell window 1
make new tab with properties {URL:"http://foo.com/bar"}
make new tab with properties {URL:"http://foo.com/baz"}
end tell
end tell
But that no longer works in Safari 5.1 on Lion. It would open the new tab, but it wouldn't load the URL provided in the properties glob. I modified it to the following, which now works:
但这在 Lion 上的 Safari 5.1 中不再适用。它会打开新选项卡,但不会加载属性 glob 中提供的 URL。我将其修改为以下内容,现在可以使用了:
tell application "Safari"
tell window 1
set URL of (make new tab) to "http://foo.com/bar"
set make new tab to "http://foo.com/baz"
end tell
end tell
回答by Pascal
Code:
代码:
tell application "System Events"
tell application "Safari" to activate
tell process "Safari"
click menu item "New Tab" of menu "File" of menu bar 1
end tell
end tell
tell application "Safari"
set URL of document 1 to "http://www.stackoverflow.com/"
end tell
One problem is that this only works if the system's language is set to English.
一个问题是,这仅在系统语言设置为英语时才有效。
回答by BallpointBen
It's been a while since a new answer's been posted here. I think this is the optimal way to do this. It will open Safari if it's not open, create a new window if there are no windows open, and add the tab to the current (or newly created) window.
自从在这里发布新答案以来已经有一段时间了。我认为这是做到这一点的最佳方式。如果 Safari 未打开,它将打开 Safari,如果没有打开窗口,则创建一个新窗口,并将选项卡添加到当前(或新创建的)窗口。
tell application "Safari"
activate
try
tell window 1 to set current tab to make new tab with properties {URL:theURL}
on error
open location theURL
end try
end tell
回答by gbk
You can try following approach:
您可以尝试以下方法:
//make Safari window active and topmost
tell application "Safari" to activate
//start communication with Safari
tell application "Safari"
tell window 1
//create new tab and open specified URL
tab with properties {URL:"https://url.com"})
//make tab active
set visible to true
end tell
end tell
Also u can combine usage of Apple script within FastScript(free for 10 shortcut)
您也可以在FastScript 中结合使用 Apple 脚本(10 个快捷方式免费)
To add your script - just save script in /Library/Scripts
. After you will be able to set some shortcut for new script.
要添加您的脚本 - 只需将脚本保存在/Library/Scripts
. 之后您将能够为新脚本设置一些快捷方式。
If you want to open new Window than new tab u can play within next:
如果你想打开新窗口而不是新标签,你可以在下一个播放:
tell application "System Events"
tell process "Safari"
click menu item "New window" of menu "File" of menu bar 1
end tell
end tell
Note: you need to allow AppleScript to use specialCapabilities in security settings in this case.
注意:在这种情况下,您需要允许 AppleScript 在安全设置中使用 specialCapabilities。
回答by Chris Eneman
Not the shortest solution but also works, and not only in English ...
不是最短的解决方案,但也有效,而且不仅在英语中......
tell application "Safari"
activate
end tell
tell application "System Events"
set frontmost of process "Safari" to true
keystroke "t" using {command down}
end tell
set myURL to "anyurl.html"
delay 2
tell application "Safari" to set the URL of the front document to myURL
回答by Mudlabs
Worked for me in Safari v.11
在 Safari v.11 中对我来说有效
tell application "Safari"
tell window 1
make new tab with properties {URL:"https://twitter.com"}
end tell
end tell
回答by BK201 Freelance
I found a way to open a new tab in the background with Safari.
我找到了一种使用 Safari 在后台打开新标签的方法。
tell application "Safari"
set the URL of (make new tab in window 1) to "your.url.net"
end tell
During the time I wrote this answer I made this
在我写这个答案的时候,我做了这个
tell application "Safari"
try
display dialog "Website URL" default answer "" buttons {"OK", "Annuler"} default button 1
set theURL to text returned of result
set netProto to "https://"
if theURL contains netProto then
set the URL of (make new tab in window 1) to theURL
else
set the URL of (make new tab in window 1) to netProto & theURL
end if
end try
end tell
New version
新版本
tell application "Safari"
repeat
try
display dialog "Website URL" default answer "" buttons {"OK", "Annuler"} default button 1
set theURL to text returned of result
if theURL is "" then exit repeat
set netProto to "https://"
if theURL contains netProto then
set the URL of (make new tab in window 1) to theURL
else
set the URL of (make new tab in window 1) to netProto & theURL
end if
display dialog "Do you want to open a new tab?" buttons {"Yes", "No"} default button "Yes"
if button returned of result is "No" then exit repeat
end try
end repeat
end tell
Any suggestions will be appreciate
任何建议将不胜感激
Best regards
最好的祝福