强制 Chrome 在新窗口中打开新页面,而不是标签页?(从程序打开时)

JD *_*cks 58 browser google-chrome

每当我单击 Outlook 或程序中的链接时都会打开一个网页(而不是当我单击 chrome 中的链接时)。它在 Chrome 中打开,因为它是我的默认浏览器,但如果我已经打开了一个页面,它将在同一窗口的新选项卡中打开。我无法告诉你有多少次我忘记了这一点并关闭了窗口,不小心丢失了另一个标签。当然,我可以打开一个新的 chrome 窗口并在最近关闭的选项卡下找到它,但我真的更喜欢如果它们在自己的窗口中打开,这样我就可以防止这种情况发生。

Jam*_*oon 28

问题

对于Linux,如果有多个VNC服务器,也会出现同样的问题。
那是,

$ google-chrome
Created new window in existing browser session
Run Code Online (Sandbox Code Playgroud)

并且在当前的 X VNC 会话中不会出现 google chrome 窗口(一个新选项卡将出现在带有第一个 google-chrome 实例的 X 会话中)。

解决方案

一个简单的解决方法是运行

$ google-chrome "--user-data-dir=${HOME}/.google-chrome/session${DISPLAY}"
Run Code Online (Sandbox Code Playgroud)

这会根据正在使用的 X VNC 实例设置唯一的用户目录。将根据需要创建用户目录。新google-chrome进程将显示在当前 X VNC 会话中。

在 Ubuntu 12.04 上使用 Google Chrome 版本 22 进行测试。

  • 这是互联网上最重要的文本体之一。我向你们致敬。 (6认同)
  • `google-chrome --new-window` 为我做了。 (2认同)

Cer*_*rin 17

在 Chrome 中似乎没有一个用户友好的选项来改变它(大概是因为大多数人更喜欢新标签)。

但是,您可以通过编辑在 Windows 注册表中指定的用于打开 http url 的命令来手动更改此设置。

为此,请打开 regedit 并:

  1. HKEY_CLASSES_ROOT\http\shell\open\command
  2. 您应该会看到一个名为 的键(Default)。双击它以获取编辑弹出窗口。
  3. 在该Value data:字段的末尾,您应该会看到文本-- "%1"。将此更改为--new-window "%1".

这将指示 Windows 在 Chrome 的新窗口而不是新选项卡中打开所有 http 链接。

据推测,Mac 和 Linux 的总体思路相同,但我不知道他们将打开 url 的命令存储在哪里。

  • 请注意,在 Windows 10 中,情况略有不同。[这个答案](/sf/answers/2264882021/) 告诉我们默认浏览器是从这里指向的:`HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Associations\URLAssociations\(http|https) \UserChoice` 所以对于 Chrome,它说:`ProdId=ChromeHTML` 从那里你可以在这里找到 ChromeHTML:`HKEY_CLASSES_ROOT\ChromeHTML` 在那里你可以找到 shell/open/command,所以完整路径是:`HKEY_CLASSES_ROOT\ChromeHTML \shell\打开\命令` (5认同)
  • 有什么好方法可以“防止”Chrome 在每次更新时覆盖这些更改?(这种情况发生得相对频繁。) (4认同)
  • 要在不通过注册表编辑器的情况下应用@Trinition 的解决方案,您可以将以下内容存储为“WebLinks.reg”并执行它。请确认该文件包含正确的 Chrome 安装目录。另外,在它们之间添加一些换行符;) `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\""` (2认同)

sff*_*ffc 10

Mike Hardy 发布了一个适用于 Mac OS X的解决方案。我在 10.7 Lion 中使用它并且运行良好。

该解决方案涉及一个小的 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
Run Code Online (Sandbox Code Playgroud)

将此应用程序设置为您的默认浏览器将导致外部程序链接在 Chrome 的新窗口中打开。


小智 10

为 Windows 7 pro x64 更新,遵循上面的 Cerin -

Go to HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command
Run Code Online (Sandbox Code Playgroud)

您应该看到一个键,名为(默认)。 双击它以得到一个编辑弹出窗口。

将键值更改为:

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

["C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --new-window "%1"]
Run Code Online (Sandbox Code Playgroud)


Sam*_*ris 8

如果任何 Linux 用户想知道同样的事情,我通过复制/usr/share/applications/chromium.desktop~/.local/share/applications然后编辑它来做到这一点,如下所示:

--- /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
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 Debianchromium软件包,并且不介意将其设置为系统上所有用户的默认值,则可以改为编辑/etc/chromium/default并添加--new-windowCHROMIUM_FLAGS变量中。


stu*_*eek 7

您可以为此使用“新标签,新窗口”扩展。他们的工作方式是将新创建的选项卡快速移动到新窗口。所以有一点重绘,但它确实工作得很好(至少对我来说)。

请注意,正如@John 在下面提到的,此扩展程序为所有新标签页(甚至是从 Chrome 内部创建的标签页)设置了默认行为。

  • 这个扩展并不好......它总是打开一个新窗口,即使在 chrome 本身中单击命令时也是如此 (4认同)