16 votes

Comment faire en sorte qu'un lien s'ouvre dans une fenêtre Safari spécifique sous MacOS ?

Je dispose de plusieurs fenêtres Safari pour l'organisation des onglets. J'ai généralement plusieurs onglets dans chaque fenêtre.

Lorsque je clique sur un lien à partir d'une application autre que Safari, le lien s'ouvre dans un nouvel onglet de Safari, car Safari est mon navigateur par défaut.

Le problème est qu'il s'ouvre souvent dans une fenêtre Safari qui est actuellement réduite ou que je n'utilise pas. Il n'ouvre donc pas le lien dans ma fenêtre principale, active et actuelle (en fait, celle que j'ai utilisée en dernier). Au lieu de cela, il choisit sa propre "fenêtre par défaut" pour ouvrir les liens, qui peut être une fenêtre que je n'utilise même pas.

Cependant, j'aimerais que ces liens toujours s'ouvrir dans la dernière fenêtre utilisée, et non dans une fenêtre que je n'utilise pas. Est-il possible de faire en sorte que les liens s'ouvrent toujours dans la dernière fenêtre active utilisée, ou au moins de définir la fenêtre "par défaut" qui ouvrira les nouveaux liens ?

Je suis actuellement sous MacOS Sierra 10.12.1, avec la version par défaut de Safari qui l'accompagne.

8voto

arGLeveN Points 31

Cela peut être fait avec une application AppleScript qui ouvre le lien dans Safari et fait de cette application le navigateur par défaut.

J'ai trouvé deux versions en testant : soit ouvrir dans de nouvelles fenêtres, soit dans de nouveaux onglets s'il y a déjà une fenêtre dans l'espace actuel.

  • Ouvrez script Editor.app (ou encore mieux script Debugger)

  • Si vous voulez que les liens s'ouvrent dans une nouvelle fenêtre utiliser ce

    on open location theURL    
        tell application "Safari"  
            make new document with properties {URL:theURL}  
            activate  
        end tell  
    end open location  
  • Si vous voulez que les liens s'ouvrent dans une nouvel onglet (si une fenêtre est disponible dans l'espace actuel) utilisez ceci :

    on open location theURL  
        tell application "System Events"  
            tell process "Safari"  
                try  
                    set frontWinName to name of window 1 
                on error  
                    my openNewWindow(theURL)  
                    return  
                end try  
            end tell  
        end tell  
    
        tell application "Safari"  
            try  
                tell (first window whose name is frontWinName and miniaturized is false)  
                    set current tab to make new tab with properties {URL:theURL}  
                    activate  
                end tell  
            on error  
                my openNewWindow(theURL)  
            end try  
        end tell  
    end open location  
    
    on openNewWindow(theURL)  
        tell application "Safari"  
            make new document with properties {URL:theURL}  
            activate  
        end tell  
    end openNewWindow  
  • Enregistrer comme application

  • Si vous ne voulez pas que l'application soit affichée dans le dock

    • Faites un clic droit sur l'application, allez dans le paquet et trouvez Info.plist

    • Ajouter ceci dans Info.plist

      <key>LSUIElement</key>  
      <true/>
  • Définir l'application comme navigateur par défaut (J'ai utilisé RCDefaultApp).

Si vous voulez voir à quel point le comportement des liens par défaut de MacOS est ennuyeux, je vous suggère de revenir à Safari comme navigateur par défaut après quelques heures ...

Je suis toujours sous 10.14.6 et je ne connais pas les restrictions possibles dans Catalina.

4voto

Monomeeth Points 61435

En tant que développeur, j'ai étudié la possibilité d'extensions permettant d'obtenir ce que l'on veut en ouvrant toujours un fichier nouveau lorsque vous cliquez sur un lien contenu en dehors de Safari lui-même. Je suis désolé de vous dire que je ne pense pas que cette approche soit possible.

Malheureusement, Safari n'offre pas aux extensions un moyen de déterminer l'identité de l'utilisateur. origine d'un nouvel onglet/fenêtre. Je veux dire par là qu'un nouvel onglet peut être créé parce que l'utilisateur clique sur un lien dans un e-mail, clique sur un lien dans Safari avec la touche Commande, ouvre un signet Safari en maintenant la touche Commande enfoncée, clique sur un lien dans un document PDF, ou toute autre action qui ouvre une page dans un nouvel onglet. Quelle que soit la méthode employée, Safari ne fournit pas d'informations sur l'ouverture d'un nouvel onglet. comment la fenêtre a été ouverte sur une extension de Safari.

Comme tous ces événements se ressemblent, aucune extension ne peut forcer les liens provenant de l'extérieur de Safari à s'ouvrir dans de nouvelles fenêtres sans que cela n'affecte également les liens ouverts d'autres manières (y compris lors de la navigation dans Safari).

0voto

Ricky Kennedy Points 1

Bien qu'il ne s'ouvre pas nativement dans la fenêtre souhaitée, vous pouvez toujours saisir l'onglet et le repositionner dans une autre fenêtre Safari directement après son ouverture.

Je ne sais pas si cela peut aider ou non, juste une suggestion.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X