Forcer Chrome à ouvrir de nouvelles pages dans une nouvelle fenêtre, pas d’onglet? (lorsqu'il est ouvert depuis un programme)

45

Chaque fois que je clique sur un lien de quelque chose comme Outlook ou un programme, une page Web s'ouvre (pas lorsque je clique sur un lien dans Chrome ). Il s’ouvre dans Chrome car c’est mon navigateur par défaut, mais si une page est déjà ouverte, elle s’ouvrira dans un nouvel onglet de la même fenêtre. Je ne peux pas vous dire combien de fois j'ai oublié cela et fermé la fenêtre, en perdant accidentellement l'autre onglet. Bien sûr, je peux ouvrir une nouvelle fenêtre chromée et la trouver sous des onglets récemment fermés, mais je préférerais simplement qu'ils ouvrent dans leur propre fenêtre afin que je puisse empêcher cela.

JD Isaacks
la source

Réponses:

28

Problème

Pour Linux, si vous avez plusieurs serveurs VNC, le même problème se produira.
C'est,

$ google-chrome
Created new window in existing browser session

Et aucune fenêtre google chrome n'apparaît dans la session X VNC en cours (un nouvel onglet apparaît dans la session X avec la première instance de google-chrome).

Solution

Une solution simple consiste à exécuter

$ google-chrome "--user-data-dir=${HOME}/.google-chrome/session${DISPLAY}"

Ceci définit un répertoire utilisateur unique basé sur l'instance X VNC utilisée . Le répertoire utilisateur sera créé selon les besoins. Le nouveau google-chromeprocessus s'affichera dans la session X VNC en cours.

Testé avec Google Chrome version 22 sur Ubuntu 12.04.

JamesThomasMoon1979
la source
6
C'est l'un des corps de texte les plus importants sur Internet. Je vous salue.
Jonathan Feinberg
2
google-chrome --new-windowl'a fait pour moi.
Nikana Reklawyks
Merci @NikanaReklawyks. On dirait que --new-windowc'était dans la source en 2013, alors ça m'a peut-être échappé. C'était il y a longtemps.
JamesThomasMoon1979
13

Il ne semble pas y avoir d’option conviviale permettant de modifier cela dans Chrome (probablement parce que la plupart des gens préfèrent le nouvel onglet).

Toutefois, vous pouvez modifier cela manuellement en modifiant la commande spécifiée dans votre registre Windows pour ouvrir une URL http.

Pour ce faire, ouvrez regedit et:

  1. Aller à HKEY_CLASSES_ROOT\http\shell\open\command
  2. Vous devriez voir une clé, nommée (Default). Double-cliquez dessus pour obtenir une fenêtre d'édition.
  3. À la fin du Value data:champ, vous devriez voir le texte -- "%1". Changer ceci en --new-window "%1".

Cela demandera à Windows d'ouvrir tous les liens http dans une nouvelle fenêtre de Chrome au lieu d'un nouvel onglet.

Vraisemblablement, la même idée générale est vraie pour Mac et Linux, mais je ne sais pas à l'avance où ils stockent la commande pour ouvrir les URL.

Cerin
la source
Lorsque je double clique par défaut, la fenêtre contextuelle contient un champ appelé Données de la valeur, qui est vide. Devrais-je simplement ajouter --new-window ou --new-window "% 1"? J'utilise également Win7, si cela compte.
JD Isaacks
1
Notez que si vous recherchez dans le registre toute autre clé contenant "chrome.exe" et que vous en trouvez une avec une valeur contenant "-% 1", l'ajout de ma modification devrait alors fonctionner.
Cerin
3
Existe-t-il un bon moyen "d'empêcher" Chrome de modifier ces modifications à chaque mise à jour? (Ce qui arrive assez souvent.)
Taxe
4
Notez que dans Windows 10, c'est légèrement différent. Cette réponse nous informe que le navigateur par défaut est indiqué à partir de là: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Associations\URLAssociations\(http|https)\UserChoice Donc, pour Chrome, il dit: ProdId=ChromeHTML À partir de là, vous pouvez trouver ChromeHTML ici: HKEY_CLASSES_ROOT\ChromeHTML Sous ce que vous pouvez trouver le shell / open / commande, le chemin complet est donc:HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command
Trinition
2
Pour appliquer la solution de @ Trinition sans passer par l'Éditeur du Registre, vous pouvez stocker le contenu suivant sous le nom "WebLinks.reg" et l'exécuter. Vérifiez que le fichier contient votre répertoire d'installation correct pour Chrome. Ajoutez également des nouvelles lignes entre les deux;) Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command] @="\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\" --new-window \"%1\""
Igor Akkerman
9

Mike Hardy a publié une solution pour Mac OS X. Je l'utilise dans 10.7 Lion et cela fonctionne bien.

La solution implique une petite application AppleScript:

on open location theURL
    tell application "/Applications/Google Chrome.app"
        make new window
        activate
        set URL of active tab of first window to theURL
    end tell
end open location

Si vous définissez cette application comme navigateur par défaut, les liens des programmes externes s'ouvrent dans une nouvelle fenêtre de Chrome.

sffc
la source
Comment / où suis-je censé enregistrer cette application AppleScript dans Mavericks 10.9.5? J'ai enregistré ce qui précède dans [Mon utilisateur] / Bibliothèque / Scripts d'application en tant qu '"application", mais il n'apparaissait pas en tant que navigateur dans les préférences de navigateur par défaut de Safari. De plus, j'ai téléchargé le lot d'applescript depuis la solution de Mike Hardy et l'ai décompressé dans le même dossier. Cela a ajouté le script à la liste des navigateurs, et je l'ai choisi, mais lorsque j'ai cliqué sur un lien à partir d'une application externe, le lien ne s'est pas ouvert.
Mike Eng
7

Dans le cas où tous les utilisateurs Linux se demandent la même chose, je l' ai fait en copiant /usr/share/applications/chromium.desktopà ~/.local/share/applicationspuis le modifier comme suit:

--- /usr/share/applications/chromium.desktop    2012-08-10 17:02:01.000000000 +0100
+++ /home/sam/.local/share/applications/chromium.desktop    2012-08-23  10:33:21.987359591 +0100
@@ -128,7 +128,7 @@
 Comment[zh_CN]=访问互联网
 Comment[zh_HK]=連線到網際網路
 Comment[zh_TW]=連線到網際網路
-Exec=/usr/bin/chromium %U
+Exec=/usr/bin/chromium --new-window %U
 Terminal=false
 X-MultipleArgs=false
 Type=Application

Si vous utilisez le chromiumpaquet Debian et que cela ne vous dérange pas de le définir comme valeur par défaut pour tous les utilisateurs du système, vous pouvez plutôt éditer /etc/chromium/defaultet ajouter des éléments --new-windowà la CHROMIUM_FLAGSvariable.

Sam Morris
la source
Merci. J'étais tellement fatigué d'être passé à un autre ordinateur lorsque je clique sur le lanceur Chrome! J'ajouterai simplement que vous pouvez simplement modifier les propriétés de l'icône du lanceur afin de l'ajouter à l' --new-windowoption, si vous souhaitez simplement modifier le comportement de l'icône du lanceur. Pourquoi l'option n'est-elle pas documentée dans la page de manuel?
AmigoNico
7

Vous pouvez utiliser l' extension "Nouvel onglet, Nouvelle fenêtre" pour cela. La façon dont cela fonctionne déplace rapidement l'onglet nouvellement créé vers une nouvelle fenêtre. Il y a donc un peu de redessinage, mais cela fonctionne plutôt bien (du moins pour moi).

Notez que, comme @John le mentionne ci-dessous, cette extension crée le comportement par défaut de tous les nouveaux onglets (même ceux créés à partir de Chrome).

studgeek
la source
4
cette extension n'est pas bonne ... elle ouvre toujours une nouvelle fenêtre, même lorsque l'on clique sur une commande à partir de chrome lui
John Bachir
1
En fait, je pense que c'est une bonne chose (je déteste les onglets :), mais je suis d'accord compte tenu de la question dont j'avais besoin pour que cela soit plus clair dans ma réponse. Je l'ai mis à jour.
studgeek
6

Mise à jour pour Windows 7 pro x64, à la suite de Cerin ci-dessus -

Go to HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command

Vous devriez voir une clé, nommée (Par défaut). Double-cliquez dessus pour afficher une fenêtre d'édition.

Changer la valeur de la clé de:

["C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -- "%1"]

à

["C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --new-window "%1"]
Philippe
la source
Je viens de confirmer que cela fonctionne sur Windows 10 en janvier 2017.
Nelson
2

La réponse de Cerin ci-dessus est la bonne, mais une modification est nécessaire: la clé de modification proposée n'est pas spécifique à Chrome et varie en fonction de l'utilisateur connecté. c'est la solution de travail:

  1. Aller à HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command
  2. Vous devriez voir une clé, nommée (Par défaut). Double-cliquez dessus pour obtenir une fenêtre d'édition.
  3. Modifiez la valeur de la clé en "C:\Program Files\Google\Chrome\Application\chrome.exe" --new-window "%1".
Michael Bahig
la source
Bonjour, merci, cela fonctionne très bien. Cependant, soit après le redémarrage de pc ou la mise à jour de chrome (indéterminé), il est réinitialisé. Cela ne me dérange pas puisque je ne fais pas beaucoup de ces deux choses trop souvent, mais avez-vous un moyen d'éviter cela? La seule chose qui me vienne à l’esprit serait de créer un fichier de registre qui serait exécuté au démarrage.
Ev0oD
Bonjour, je ne suis pas un utilisateur habituel de Chrome, je n'ai donc pas fait de tests approfondis avec cette solution. Cependant, un message dans le forum du produit Chrome suggère que vous deviez modifier toutes les occurrences de registre de chrome pour que le commutateur new-window soit activé. Pour en savoir plus, rendez-vous à l' adresse suivante
Michael Bahig
1

Cette option de ligne de commande devrait fonctionner pour vous

chrome --new-window 
Support technique
la source
Cela ne répond pas à la question "Lorsque vous cliquez sur des liens dans d'autres programmes" en tant que tel, mais cela répond à ma requête particulière et constitue la réponse acceptée d'une question dupliquée.
Nikana Reklawyks