Est-il possible d'utiliser AppleScript pour ouvrir un lien dans un nouvel onglet de Safari?
Cela fonctionnera:
tell application "Safari"
tell window 1
set current tab to (make new tab with properties {URL:"http://www.stackoverflow.com"})
end tell
end tell
Je pense que cela fait aussi ce que vous avez demandé, mais c'est beaucoup plus court et moins spécifique à votre navigateur:
do Shell script "open http://www.webpagehere.com"
Cela ouvrira l'URL spécifiée dans votre navigateur par défaut. Et si vous voulez explicitement l’ouvrir dans Safari, utilisez ceci:
do Shell script "open -a Safari 'http://www.webpagehere.com'"
Cela devrait généralement créer un nouvel onglet et le focaliser (ou focaliser un onglet existant si l'URL est déjà ouverte):
tell application "Safari"
open location "http://stackoverflow.com"
activate
end tell
Il ouvre une nouvelle fenêtre si "Ouvrir les pages dans des onglets au lieu de fenêtres" est défini sur Jamais.
tell application "System Events" to open location
ne fonctionne pas avec certaines URL contenant des caractères non-ASCII:
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
Cela ouvre un nouvel onglet même lorsque de nouvelles pages sont définies pour s'ouvrir dans 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
ne lève pas la fenêtre, mais la fait apparaître comme window 1
dans System Events, qui peut AXRaise
.
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
Un problème est que cela ne fonctionne que si la langue du système est l'anglais.
J'utilise le script suivant pour ouvrir des centaines de documents dans des onglets d'une seule fenêtre.
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
Mais cela ne fonctionne plus dans Safari 5.1 sur Lion. Cela ouvrirait le nouvel onglet, mais cela ne chargerait pas l'URL fournie dans les propriétés glob. Je l'ai modifié comme suit, qui fonctionne maintenant:
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
Cela fait un moment qu'une nouvelle réponse a été postée ici. Je pense que c'est la manière optimale de le faire. Safari s'ouvrira s'il n'est pas ouvert, crée une nouvelle fenêtre si aucune fenêtre n'est ouverte et ajoute l'onglet à la fenêtre actuelle (ou nouvellement créée).
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
J'ai fini par utiliser automator pour ce faire, ce qui était beaucoup plus facile et fonctionne.
Je ne peux pas commenter: -/je vais donc répondre en disant que la réponse de Tim (ci-dessus) fonctionne à partir de OS X 10.8.5. Cette version d'une ligne de son script fonctionne également:
tell window 1 of application "Safari" to set current tab to (make new tab with properties {URL:"http://www.stackoverflow.com"})
Arrgh - la ligne est en train de déborder. Ici, c'est sans les balises de code:
indiquez à la fenêtre 1 de l'application "Safari" de définir l'onglet actuel (créer un nouvel onglet avec propriétés {URL: " http://www.stackoverflow.com "})
J'ai trouvé un moyen d'ouvrir un nouvel onglet en arrière-plan avec Safari.
tell application "Safari"
set the URL of (make new tab in window 1) to "your.url.net"
end tell
Pendant le temps où j'ai écrit cette réponse, j'ai fait ceci
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
Nouvelle 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
Toutes les suggestions seront appréciées
Meilleures salutations
Vous pouvez essayer l'approche suivante:
//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
Vous pouvez également combiner l'utilisation du script Apple dans FastScript (gratuit pour 10 raccourcis)
Pour ajouter votre script, enregistrez simplement le script dans /Library/Scripts
. Une fois que vous pourrez définir un raccourci pour le nouveau script.
Si vous voulez ouvrir une nouvelle fenêtre que nouvel onglet, vous pouvez jouer dans le prochain:
tell application "System Events"
tell process "Safari"
click menu item "New window" of menu "File" of menu bar 1
end tell
end tell
Remarque: vous devez autoriser AppleScript à utiliser des capacités spéciales dans les paramètres de sécurité dans ce cas.
Travaillé pour moi dans Safari v.11
tell application "Safari"
tell window 1
make new tab with properties {URL:"https://Twitter.com"}
end tell
end tell
Ce n'est pas la solution la plus courte, mais ça marche aussi, et pas seulement en anglais ...
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