Astuce : ouvrir une page de Safari dans un autre navigateur [MàJ]

Nicolas Furno |
Avec Safari 5.0.4, Apple a modifié le comportement du sous-menu "Ouvrir la page avec" situé dans le menu "Développement". Jusque-là, Apple affichait seulement le nom du navigateur, mais la dernière version de Safari ajoute entre parenthèses le numéro de version. Aucune importance, sauf si vous utilisiez ce menu pour ouvrir la page actuelle dans un autre navigateur. En associant un raccourci clavier au nom d'un navigateur, on pouvait ainsi se passer du plug-in Flash dans Safari, mais ouvrir rapidement une page avec du contenu multimédia dans Google Chrome qui intègre Flash, par exemple (lire : Astuce : comment vivre sans Flash sur Mac OS ?).

http://static.igen.fr/img/2011/2/skitched-20110315-173849.jpg

Avec Safari 5.0.4, il faudrait modifier le raccourci à chaque mise à jour de Google Chrome. Autant dire que la solution n'était plus praticable, d'autant que les mises à jour de Chrome se font de manière silencieuse. Une autre solution consiste à passer par un script écrit en AppleScript. Ce script est très simple, il se contente d'envoyer l'adresse du site en cours dans un nouvel onglet de Google Chrome.

Plusieurs méthodes sont possibles pour utiliser ce script. On pourrait simplement le sauvegarder dans le dossier des scripts Safari, mais le plus simple et efficace est de créer un service à l'aide d'Automator. Ouvrez le logiciel (à l'aide de Spotlight) et créez un service à l'ouverture.

http://static.macg.co/img/2011/2/skitched-20110315-183046.jpg

Ce service va être simple, il va simplement consister à exécuter du code AppleScript. Ajoutez tout d'abord l'action nommée "Exécuter un script AppleScript". Vous pouvez la retrouver facilement en faisant une recherche dans le champ de recherche (1). Glissez ensuite le script dans la partie centrale du logiciel (2) et copiez/collez le script dans la partie dédiée au code (3).

http://static.macg.co/img/2011/2/skitched-20110315-183353.jpg

voici le code AppleScript à insérer dans le service créé par Automator :


property theURL : ""

on run {input, parameters}

tell application "Safari"
set theURL to URL of current tab of window 1
end tell
tell application "Google Chrome"
if not (exists window 1) then make new window
tell window 1
if URL of active tab is "chrome://newtab/" then
set myTab to active tab
else
set myTab to make new tab at end of tabs
end if
end tell
set URL of myTab to theURL
activate

end tell

return input
end run


La ligne "activate" met au premier plan Chrome après l'opération. Si vous préférez envoyer l'URL en arrière-plan, supprimez simplement cette ligne. Quand vous êtes satisfait du code, appuyez sur le petit marteau pour vérifier que vous n'obtenez pas d'erreur.

Il ne reste plus qu'à configurer le comportement général du service. Configurez le service pour n'attendre "aucune entrée" en réception et "n'importe quelle application" en ordre (4). De cette manière, le service sera accessible depuis n'importe quelle application, mais vous pouvez aussi restreindre le champ d'action du service à Safari en choisissant "Safari" dans la liste déroulante des applications.

Enregistrez simplement ce service et il sera immédiatement accessible dans le menu "Services" de Safari ou toute autre application. Le script ouvrira automatiquement Chrome s'il n'est pas déjà ouvert, il ouvrira un nouvel onglet sauf si l'onglet en cours dans Chrome est un onglet vierge et il ouvrira dans cet onglet l'adresse de la page en cours dans Safari. Le service fonctionne si Safari est aussi fermé, mais dans ce cas un onglet vide s'ouvrira dans Chrome.

http://static.macg.co/img/2011/2/skitched-20110315-184231.jpg

La dernière étape consiste à ajouter un raccourci clavier à ce service pour simplifier son utilisation. Cela se fait depuis les préférences systèmes, panneau "Clavier" puis onglet "Raccourcis clavier". Deux possibilités alors, soit ajouter le raccourci au service directement dans la dédiée aux Services, soit ajouter un raccourci d'applications pour toutes les applications en utilisant le nom du service. Dans les deux cas, vous pourrez désormais ouvrir la page en cours de Safari dans Chrome à n'importe quel moment et quelle que soit la version de Chrome…

http://static.macg.co/img/2011/2/skitched-20110315-190837.jpg

[MàJ] : un lecteur nous a signalé une solution beaucoup plus simple que l'AppleScript décrit plus haut. Cette solution utilise le langage Shell, plus puissant, mais aussi plus complexe à maîtriser même si le résultat est extrêmement simple.

Pour la mettre en œuvre, vous devez toujours créer un service dans Automator en veillant à indiquer "pas d'entrée" dans "Réception du service" (1)

http://static.macg.co/img/2011/2/skitched-20110316-174254.jpg

Ajoutez à ce service deux actions Automator (utilisez la recherche du logiciel pour les trouver) : "Obtenir la page Web actuelle de Safari" (2) puis "Exécuter un script Shell" (3). La première action ne nécessite aucune intervention de votre part.

Pour l'action dédiée au script Shell, commencez par modifier le champ "Données en entrées" pour le positionner sur "comme arguments" (4). Dans la partie centrale, enlevez tout le code qui sera ajouté automatiquement et remplacez-le par celui-ci : « open $1 -a /Applications/Google\ Chrome.app ». Ce code va ouvrir dans l'application Chrome (c'est le sens du -a) l'URL envoyée par l'action précédente d'Automator (c'est le sens du $1).

Ce service fonctionne aussi bien que le script Apple Script précédent. Si Chrome n'est pas ouvert, il sera automatiquement lancé. Seule différence, un nouvel onglet sera toujours créé, même si l'onglet actuel est vide. Si l'astuce vous intéresse, choisissez l'une ou l'autre solution, sachant que cette dernière est plus élégante et sans doute plus fiable.

merci @JegnuX
avatar Corentin Cras-Méneur | 
Plus simple : Sélectionner l’icône de l’URL dans la barre d’URL et la glisser vers l’icône de l’autre navigateur dans le Dock…
avatar misterbrown | 
c est du macbidouille tout ça !
avatar tempest | 
Grillé par Cortig !! Je ne comprend même pas la démarche de cette astuce !!! Le glissé déposé est au centre de MacOS X depuis le début… Ou alors nous n'avons pas tout compris ?
avatar Tonio the best | 
Plus simple, utiliser Firefox =D
avatar Yohmi | 
@ tempest Simple : j’ai pas l’icône de Chrome dans mon dock car ça m’embarrasse vu que je ne m’en sers que quand je tombe sur les quelques sites qui ne proposent aucune alternative à Flash. Donc je le glisse et le dépose où ? Autre avantage, on peut substituer une gesture à un raccourcis clavier grâce à BetterTouchTool. Merci MacG pour la manip, je vais essayer, car j’avais juste utilisé la méthode de la dernière étape seulement, mais ça marchait qu’une fois sur 10, apparemment selon le contenu de la page, le comportement changeait…
avatar Cal Apone | 
Quelle est l'utilité de créer un script AppleScript via Automator plutôt que via… AppleScript.app justement? C'était trop simple de l'utiliser, j'ai juste? :-) Sinon, vos astuces me paraissent bien compliqué par rapport à un glisser-déposer ou un copier-coller, mais bon, si cela peut rendre service à quelqu'un.
avatar Anonyme (non vérifié) | 
misterbrown : du tuaw (indiqué en source) via daringfireball, sûrement
avatar Nesus | 
En fait c'était déjà le cas dans safari si vous possédiez plusieurs version du navigateur web. J'avais opéra sur mon disque dur externe (et donc plus a jour depuis un moment) et sur mon disque dur local. Dans l'onglet développeur j'avais la parenthèse avec la version pour identifier (c'est toujours le cas, sauf que désormais c'est généralisé même sans doublon).
avatar pecos | 
+1 Nesus, même chose chez moi : j'ai aussi le numéro de version derrière certains navigateurs présents sur mon disque dur alors que je n'ai pas mis à jour safari (5.0.3). Pourquoi "certains" et pas tous ? Mystère... Peut-être parce que certains navigateurs ont été renommés manuellement ?
avatar Mac Mac | 
Z'avez pas plus compliqué ?
avatar Yohmi | 
@ Mac mac : Temps de mise en œuvre : environ 30 secondes quand on a les deux mains libres. Testé et approuvé, maintenant avec BTT, un simple clic à trois doigts sur une page lance Chrome et ouvre la page incriminée dedans. Encore merci pour le tuyau et pour les explications claires :)
avatar ludovicdelys | 
Juste une question : le glisser-déposer d'un url sur l'icône d'un navigateur dans le dock ouvre celui-ci automatiquement sur la page idoine, alors svp, pourquoi autant de bla-bla pour une astuce qui n'en est pas ?… A moins que je n'ai rien compris…
avatar richard | 
peut-on m'expliquer pourquoi je n'ai pas le menu Développement entre Signets et Fenêtre alors que j'ai bien la v.5.0.4 de Safari ? cordial merci
avatar Anonyme (non vérifié) | 
richard > Menu Safari->Préférences, panneau Avancées et coche "Afficher le menu Développement dans la barre des menus"
avatar Yohmi | 
@ludovicdelys Puisque tu le demandes gentiment, je t’invite à regarder les messages au-dessus. Il paraît qu’en lisant avant de poser une question, on y trouve parfois la réponse :)
avatar pwetpwet | 
@Yohmi: tu n'as pas Chrome en permanence dans ton Dock ? Pas de soucis, tu le lances au besoin et euh.... bah il y a apparaîtra puis tu y glisses ton URL -_- Incroyablissime !
avatar Cthrn | 
"Avec Safari 5.0.4, il faudrait modifier le mot de passe à chaque mise à jour de Google Chrome" : Je n'ai pas compris cette phrase. De quel mot de passe parle-t-on ? J'imagine qu'on parle du raccourci. Et puis, pourquoi le script ne pourrait-il pas activer le menu Développement de Safari, au lieu de tout ce charabia ? Par exemple : tell menu bar item "Développement"..
avatar subsole | 
Plus simple on meurt, ou comment perdre sont temps. :D Sans blague, nous installons déjà les codec Périan, Flip4Mac (+ QuickSilver), etc., un de plus un de moins, j'installe le plug Flash, et l'extension AdBlock ;) Arrêtez la fummmmettte. :)
avatar multi | 
Que de manip pour remplacer un simple glissé déposé
avatar kaisy | 
moi aussi j'ai rien compris (mais je n'ai pas chrome) puisque Safari détecte les versions... j'ai compris ! (?): tout ça SI on veut faire la manip à l'aide d'un raccourci (dans Pref-Système - Clavier). [Firefox 3.6.15]
avatar richard | 
@sunjohn -> merci
avatar Yohmi | 
@ pwetpwet Donc en gros, toi, tu trouves que c’est tout aussi pratique d’aller dans le finder, puis dans application, de chercher Chrome, de le lancer, de viser avec le trackpad la petite icône à gauche de l’adresse et de la glisser jusqu’à l’icône de Chrome dans le dock, que de juste faire un clic avec trois doigts quand on est sur une page ? T’as windows au bureau, avoue :P
avatar Nicolas Furno | 
@ tous ceux qui prônent le glisser/déposer : en effet, c'est plus simple, mais ce n'est vraiment pas pratique. J'utilise en permanence mon Mac connecté à un écran externe. La distance entre la barre d'URL et le dock est parfois très grande. Sans compter que par définition, l'icône de Chrome change en permanence de position en fonction des applications ouvertes, donc je passerai mon temps à chercher l'icône avec l'URL en train d'être glissée/déposée. Si j'ajoute au tableau que j'utilise un trackpad qui n'est pas idéal pour les glisser/Déposer, moi je trouve ma solution bien plus efficace… En plus, j'utilise Spaces et Chrome est mon navigateur de rédaction. Il vient se loger sur un demi écran à côté du logiciel que j'utilise pour écrire, sur un espace dédié. Safari est mon navigateur par défaut situé sur un autre espace. Avec ce raccourci, je peux rapatrier pendant que j'écris la page actuelle de Safari dans Chrome, sans avoir à changer d'espace, cliquer sur la barre d'URL, glisser l'URL vers le dock, chercher Chrome, relâcher… Rappelez-vous que tout le monde n'a pas la même utilisation des Mac… Par contre, un script AppleScript est peut-être complexe par rapport à un script shell. Je dois tester cette option, je mettrai la news à jour le cas échéant.
avatar kaisy | 
avatar Nicolas Furno | 
@ kaizy : faux, le dock s'agrandit avec de nombreuses applications ouvertes. Et crois moi, on a souvent beaucoup d'applications ouvertes chez MacG. Enfin peu importe, si un simple glisser/déposer m'avait suffi je ne serais pas allé plus loin…

Pages

CONNEXION UTILISATEUR