Ouvrir L'URL dans le nouvel onglet Safari avec AppleScript

Est-il possible d'utiliser AppleScript pour ouvrir un lien dans un nouvel onglet dans Safari?

28
demandé sur Brian Webster 2010-05-23 21:00:22

11 réponses

Cela fonctionne:

tell application "Safari"
    tell window 1
        set current tab to (make new tab with properties {URL:"http://www.stackoverflow.com"})
    end tell
end tell
33
répondu Tim Lewis 2012-01-17 03:17:54

je pense que cela fait aussi ce que vous avez demandé, mais il est beaucoup plus court et moins spécifiques à un navigateur:

do shell script "open http://www.webpagehere.com"

ceci ouvrira l'URL spécifiée dans votre navigateur par défaut. Et si vous souhaitez explicitement pour l'ouvrir dans Safari, utilisez ceci:

do shell script "open -a Safari 'http://www.webpagehere.com'"
21
répondu rien333 2017-01-14 17:45:26

cela devrait normalement 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

ouvre une nouvelle fenêtre si "ouvrir des pages dans des onglets au lieu de windows" est défini à never though.

tell application "System Events" to open location ne fonctionne pas avec certaines URL qui contiennent 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

ceci ouvre un nouvel onglet même lorsque de nouvelles pages sont définies pour 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 soulève pas la fenêtre, mais il fait le la fenêtre apparaît comme window 1 pour les Événements du Système, qui peut AXRaise.

7
répondu user495470 2013-02-12 22:15:11

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 définie à l'anglais.

3
répondu 2010-05-23 17:02:50

j'ai utilisé le script suivant pour ouvrir des centaines de docs dans des onglets dans une fenêtre unique.

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
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
3
répondu Pascal 2011-09-01 20:31:59

Cela fait longtemps qu'une nouvelle réponse n'a pas été postée ici. Je pense que c'est le meilleur moyen pour ce faire. Il ouvrira Safari s'il n'est pas ouvert, créera une nouvelle fenêtre s'il n'y a pas de fenêtre ouverte, et ajoutera l'onglet à la fenêtre courante (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
1
répondu BallpointBen 2017-06-10 18:18:12

je ne peux pas commenter :-/ donc je vais répondre pour dire que Tim réponse (ci-dessus) fonctionne en tant que système d'exploitation OS X 10.8.5. Cette version en une ligne de son script fonctionne aussi:

tell window 1 of application "Safari" to set current tab to (make new tab with properties {URL:"http://www.stackoverflow.com"})

Arrgh -- la seule ligne déborde. Ici, il est sans les étiquettes de code:

dire à la fenêtre 1 de L'application "Safari" de définir l'onglet courant (faire un nouvel onglet avec les propriétés {URL:"http://www.stackoverflow.com"})

0
répondu Geoff Canyon 2013-10-16 13:30:05

j'ai fini par utiliser automator pour faire ce qui était beaucoup plus facile et cela fonctionne.

0
répondu Laddy 2014-02-18 02:55:47

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

aussi u peut combiner l'utilisation de Apple script dans FastScript (gratuit pour les 10 raccourci)

pour ajouter votre script - il suffit de sauvegarder le script dans /Library/Scripts. Après vous serez en mesure de définir quelques raccourcis pour le nouveau script.

Si vous voulez ouvrir une nouvelle Fenêtre de nouvel onglet u peut jouer au sein suivante:

tell application "System Events"
    tell process "Safari"
        click menu item "New window" of menu "File" of menu bar 1
    end tell
end tell

Note: Vous devez autoriser AppleScript à utiliser des fonctionnalités spéciales dans les paramètres de sécurité de ce cas.

0
répondu gbk 2017-07-10 11:20:03

pas la solution la plus courte mais fonctionne 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
0
répondu Chris Eneman 2017-08-30 10:31:49

a Fonctionné 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
0
répondu Mudlabs 2017-09-28 23:43:00