So öffnen Sie in Chrome ein neues Fenster für externe Links

10

Wie einige Leute vielleicht wissen, ist das Standardverhalten für externe Links von Google Chrome ziemlich schlecht. Ich verwende Leerzeichen und öffne einen Link in einer Anwendung außerhalb von Google Chrome, während ich mich in einem anderen Bereich als dem zuletzt verwendeten Fenster von Chrome befinde. Dies führt dazu, dass Chrome zum letzten fokussierten Fenster wechselt.

Dieses Verhalten ist einfach schlecht.

Ich möchte dieses Verhalten ändern. Unter Windows ist dies möglich: Wie können Sie Chrome so konfigurieren, dass neue Browserinstanzen in neuen Fenstern und nicht in einer Registerkarte geöffnet werden?

Leider glaube ich nicht, dass dies unter OS X Snow Leopard möglich ist.

Ich verwende bereits ein Tool namens RCDefaultApps. Dies ist eine Systemsteuerung, in der ich Standardanwendungen für verschiedene Protokolle angeben kann. Es fehlt lediglich die Funktion, um zusätzliche Befehlszeilenargumente für die Standardanwendung anzugeben.

Kann mir da jemand helfen? Alle Hacks (abgesehen vom Erstellen eines benutzerdefinierten Chromium-Builds) sind akzeptabel.

jsadfeew
quelle

Antworten:

9

Sie können versuchen, das auf dieser Seite enthaltene AppleScript zu verwenden .

Ich habe es gerade ausprobiert und es funktioniert perfekt in Chrome 12.0.742.122.

Es ist extrem einfach einzurichten:

  • Laden Sie das Bundle-Archiv herunter
  • Doppelklicken Sie darauf, um es auszupacken
  • Doppelklicken Sie auf OpenUrlInNewChromeWindow
  • Öffnen Sie Safari und legen Sie den neuen "Browser" als Standardbrowser in den Einstellungen fest.

neuer Standardbrowser

mwidmann
quelle
Dies scheint eine (sehr kurze) Verzögerung vor dem Öffnen des Fensters einzuführen, aber es ist genau das, wonach ich gesucht habe. Vielen Dank!
jsadfeew
Dieses Applescript funktioniert wunderbar.
Nelson
3

Ausgehend von Daves Antwort stellte ich fest, dass unter Chrome 45 das Ausführen osascriptnicht mehr erforderlich ist und dass unter OS X 10.10 das Apple Script in den Systemeinstellungen nicht ausgewählt werden kann. Hier ist, wie ich es gelöst habe.

Erstellen Sie ein Apple Script mit dem Apple Script Editor und exportieren Sie es als Anwendung.

on open location theURL
   do shell script "/usr/bin/open '/Applications/Google Chrome.app' --new --args --new-window " & theURL
end open location

Installieren Sie die RC-Standard-App .

RCDefaultApp ist ein Einstellungsbereich für Mac OS X 10.2 oder höher, in dem ein Benutzer die Standardanwendung festlegen kann, die für verschiedene URL-Schemata, Dateierweiterungen, Dateitypen, MIME-Typen und einheitliche Typkennungen verwendet wird

Öffnen Sie in den Systemeinstellungen den neuen Standard-Apps-Bildschirm, wechseln Sie zur Registerkarte URL und legen Sie das exportierte Apple-Skript als Handler für http und https fest .

Michael Schmid
quelle
Ich danke dir sehr. Dies ist die einzige Lösung, die für mich funktioniert hat. Das hat mich jahrelang verrückt gemacht.
Luke Dubert
2

Ich konnte es auch nicht zum Laufen bringen.

Ich habe versucht, den folgenden Befehl zu verwenden:

open Google\ Chrome.app/ --new --args new-window www.google.com

Dadurch wird jedoch ein neues Chrome geöffnet, das sofort geschlossen wird (sofern Chrome bereits geöffnet ist). Ich hatte vor, den obigen Befehl in ein Bash-Skript zu packen und es dann mit Argumenten (für die URL) zu versehen.

Aber da der obige Befehl nicht funktioniert hat, denke ich immer noch darüber nach. Bisher glaube ich, dass es ohne eine Modifikation von Chromium nicht "möglich" ist, aber ich könnte etwas übersehen. Es ist früh und ich habe noch keinen Kaffee getrunken. ;)

Martin Marconcini
quelle
Ja, das habe ich auch versucht. (mit " google.com " anstelle von "Google Chrome.app") Beide Versionen funktionieren nicht.
jsadfeew
2

Dies funktioniert bei Mavericks:

open /Applications/Google\ Chrome.app --new --args --new-window https\://www.google.ca

gefolgt von:

osascript -e 'activate application "Google Chrome"'

Getestet in sh, bash und zsh.

Aus irgendeinem Grund, wenn ich versuche, sie wie folgt in dieselbe Zeile zu setzen:

/usr/bin/open /Applications/Google\ Chrome.app --new --args --new-window www.google.ca; /usr/bin/osascript -e 'activate application "Google Chrome"'

... der zweite Teil ist nicht abgeschlossen. Ich nehme an, das liegt daran, dass es dem ersten Befehl zu nahe kommt. Versuchen Sie Folgendes:

/usr/bin/open /Applications/Google\ Chrome.app --new --args --new-window www.google.ca; sleep 1; /usr/bin/osascript -e 'activate application "Google Chrome"'

Beachten Sie, dass Sie den http: // Teil der URL am Ende nicht angeben müssen, damit er funktioniert. Wenn Sie dies jedoch tun, müssen Sie den Doppelpunkt (:) umgehen.

Um dieses Skript zu meinem Standardbrowser zu machen, habe ich ein Applescript erstellt und als Anwendung exportiert. Anschließend habe ich die Safari-Einstellungen geöffnet und die Anwendung als Standardbrowser festgelegt. Hier ist der Applescript-Code:

on open location theURL
  do shell script "/Users/[myusername]/bin/openUrlInNewChromeWindow.sh " & theURL
end open location

Ersetzen Sie [mein Benutzername] durch Ihren tatsächlichen Benutzernamen.

Dave
quelle
Der Grund, warum ich diese Lösung der von mwidmann vorziehe, ist, dass diese nach dem Öffnen der URL geschlossen wird, während die andere offen zu bleiben schien, um zu funktionieren. Dies bedeutete, dass OpenUrlInNewChromeWindow immer in der CMD-Tab-Liste der ausgeführten Apps enthalten war. Jedes Mal, wenn ich eine URL öffnete, musste ich zweimal Tabs erstellen, um zur vorherigen App zurückzukehren.
Dave
Ich kann bestätigen, dass die Verwendung von RCDefaultApp von Michael Schmid auch unter OSX El Capitan (10.11.1) funktioniert.
Dave
-1

Die Befehlsoption --new-window hat es für mich getan. ("C: \ Programme (x86) \ Google \ Chrome \ Application \ chrome.exe" - neues Fenster https://www.google.com )

user67297
quelle
2
Dies ist für Windows - bitte bearbeiten, um auf OS X zu verweisen.
grg