บังคับให้ Chrome เปิดหน้าใหม่ในหน้าต่างใหม่ใช่ไหม (เมื่อเปิดจากโปรแกรม)


45

เมื่อใดก็ตามที่ฉันคลิกลิงก์จากบางสิ่งเช่น Outlook หรือโปรแกรมจะเปิดหน้าเว็บ(ไม่ใช่เมื่อฉันคลิกลิงก์จากภายใน chrome ) มันเปิดขึ้นใน Chrome เพราะมันเป็นเบราว์เซอร์เริ่มต้นของฉัน แต่ถ้าฉันมีหน้าเปิดอยู่มันจะเปิดในแท็บใหม่ในหน้าต่างเดียวกันนั้น ฉันไม่สามารถบอกคุณได้ว่ากี่ครั้งที่ฉันลืมเรื่องนี้และปิดหน้าต่างออกโดยไม่ได้ตั้งใจทำให้แท็บอื่นหายไปด้วย แน่นอนว่าฉันสามารถเปิดหน้าต่างโครเมี่ยมใหม่และค้นหามันภายใต้แท็บที่เพิ่งปิดไป แต่ฉันจะชอบถ้าพวกเขาเปิดในหน้าต่างของตัวเองเพื่อให้ฉันสามารถป้องกันสิ่งนี้ได้

คำตอบ:


28

ปัญหา

สำหรับ Linux หากคุณมีเซิร์ฟเวอร์ VNC หลายตัวปัญหาเดียวกันนี้จะเกิดขึ้น
นั่นคือ,

$ google-chrome
Created new window in existing browser session

และจะไม่มีหน้าต่าง google chrome ปรากฏในเซสชัน X VNC ปัจจุบัน (แท็บใหม่จะปรากฏในเซสชัน X พร้อมอินสแตนซ์แรกของ google-chrome)

วิธีการแก้

วิธีแก้ปัญหาแบบง่าย ๆ คือเรียกใช้

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

ชุดนี้เป็นไดเรกทอรีผู้ใช้ที่ไม่ซ้ำกันโดยยึดตามอินสแตนซ์ X VNC ที่ใช้งานอยู่ ไดเรกทอรีผู้ใช้จะถูกสร้างขึ้นตามความจำเป็น google-chromeกระบวนการใหม่จะแสดงภายในเซสชัน X VNC ปัจจุบัน

ผ่านการทดสอบโดยใช้ Google Chrome รุ่น 22 บน Ubuntu 12.04


6
นี่คือหนึ่งในเนื้อความที่สำคัญที่สุดของข้อความบนอินเทอร์เน็ต ฉันทักทายคุณ
Jonathan Feinberg

2
google-chrome --new-windowทำเพื่อฉัน
Nikana Reklawyks

ขอบคุณ @NikanaReklawyks ดูเหมือนว่า--new-windowจะอยู่ในแหล่งที่มาตั้งแต่ปี 2013ดังนั้นฉันอาจพลาด นานมาแล้ว
JamesThomasMoon1979

13

ดูเหมือนจะไม่มีตัวเลือกที่เป็นมิตรกับผู้ใช้ในการเปลี่ยนแปลงภายใน Chrome (น่าจะเป็นเพราะคนส่วนใหญ่ชอบแท็บใหม่)

อย่างไรก็ตามคุณสามารถเปลี่ยนแปลงสิ่งนี้ได้ด้วยตนเองโดยแก้ไขคำสั่งที่ระบุในการลงทะเบียน Windows ของคุณที่ใช้เพื่อเปิด http url

หากต้องการทำสิ่งนี้ให้เปิด regedit และ:

  1. ไปที่ HKEY_CLASSES_ROOT\http\shell\open\command
  2. (Default)คุณควรจะเห็นหนึ่งที่สำคัญชื่อ ดับเบิลคลิกที่นี่เพื่อรับป๊อปอัปแก้ไข
  3. ในตอนท้ายของเขตข้อมูลที่คุณจะเห็นข้อความValue data: การเปลี่ยนแปลงนี้-- "%1"--new-window "%1"

สิ่งนี้จะสั่งให้ Windows เปิดลิงค์ http ทั้งหมดในหน้าต่างใหม่ของ Chrome แทนที่จะเป็นแท็บใหม่

สันนิษฐานว่าแนวคิดทั่วไปเดียวกันนี้เป็นจริงสำหรับ Mac และ Linux แต่ฉันไม่รู้ว่าพวกเขาเก็บคำสั่งไว้เพื่อเปิด URL อย่างไร


เมื่อฉันดับเบิลคลิกค่าเริ่มต้นป๊อปมีเขตข้อมูลที่เรียกว่าข้อมูลค่ามันจะว่าง ฉันควรจะเพิ่ม --new-window หรือ - new-window "% 1" และฉันใช้ Win7 ด้วยถ้าสำคัญ
JD Isaacks

1
หมายเหตุหากคุณค้นหารีจิสทรีสำหรับคีย์อื่น ๆ ที่มี "chrome.exe" และค้นหารหัสที่มีค่าประกอบด้วย "-% 1" ดังนั้นการเพิ่มการเปลี่ยนแปลงของฉันควรใช้งานได้
Cerin

3
มีวิธีใดที่ดีในการ "ป้องกัน" Chrome จากการแทนที่การเปลี่ยนแปลงเหล่านี้ทุกการอัปเดตหรือไม่ (ซึ่งเกิดขึ้นค่อนข้างบ่อย.)
Qtax

3
โปรดทราบว่าใน Windows 10 มีความแตกต่างกันเล็กน้อย คำตอบนี้แจ้งให้เราทราบว่าเบราว์เซอร์เริ่มต้นชี้จากที่นี่: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Associations\URLAssociations\(http|https)\UserChoice ดังนั้นสำหรับ Chrome มันบอกว่า: ProdId=ChromeHTML จากตรงนั้นคุณสามารถหา ChromeHTML ได้ที่นี่: HKEY_CLASSES_ROOT\ChromeHTML ภายใต้คุณสามารถหาเชลล์ / เปิด / คำสั่งดังนั้นเส้นทางแบบเต็มคือ:HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command
Trinition

1
ในการใช้โซลูชันของ @ 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\""
Igor Akkerman

9

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

การตั้งค่าแอปพลิเคชันนี้เป็นเบราว์เซอร์เริ่มต้นของคุณจะทำให้ลิงก์โปรแกรมภายนอกเปิดในหน้าต่างใหม่ใน Chrome


ฉันควรจะบันทึกแอปพลิเคชั่น AppleScript นี้ไว้ที่ใดใน 10.9.5 Mavericks ฉันบันทึกข้างต้นใน [ผู้ใช้ของฉัน] / ไลบรารี / แอปพลิเคชันสคริปต์เป็น "แอปพลิเคชัน" แต่ไม่ปรากฏเป็นเบราว์เซอร์ภายใต้การตั้งค่าเบราว์เซอร์เริ่มต้นของ Safari นอกจากนี้ฉันดาวน์โหลดแอปพลิเคชันชุดรวมจากโซลูชันของไมค์ฮาร์ดีและทำการคลายซิปในโฟลเดอร์เดียวกัน นั่นเพิ่มสคริปต์ลงในรายการเบราว์เซอร์และฉันเลือก แต่เมื่อฉันคลิกที่ลิงค์จากแอปพลิเคชันภายนอกลิงค์นั้นจะไม่เปิดขึ้น
Mike Eng

7

ในกรณีที่ผู้ใช้ลีนุกซ์กำลังสงสัยในสิ่งเดียวกัน, ฉันทำสิ่งนี้โดยการคัดลอก/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

หากคุณกำลังใช้ Debian chromiumแพคเกจและคุณไม่ทราบการตั้งค่านี้เป็นค่าเริ่มต้นสำหรับผู้ใช้ทั้งหมดในระบบคุณสามารถแก้ไขแทน/etc/chromium/defaultและเพิ่ม--new-windowให้กับCHROMIUM_FLAGSตัวแปร


ขอบคุณ - ฉันรู้สึกเบื่อที่ถูกเปลี่ยนไปใช้เดสก์ท็อปเครื่องอื่นเมื่อฉันคลิกที่ตัวเรียกใช้งาน Chrome! ฉันจะเพิ่มว่าคุณสามารถแก้ไขคุณสมบัติสำหรับไอคอนตัวเรียกใช้เพื่อเพิ่มใน--new-windowตัวเลือกหากคุณเพียงแค่ต้องการเปลี่ยนลักษณะการทำงานของไอคอนตัวเรียกใช้งาน เหตุใดจึงไม่มีการบันทึกตัวเลือกไว้ใน man page ???
AmigoNico

7

คุณสามารถใช้ส่วนขยาย "แท็บใหม่หน้าต่างใหม่"สำหรับสิ่งนี้ วิธีที่ใช้งานได้คือย้ายแท็บที่สร้างขึ้นใหม่ไปยังหน้าต่างใหม่อย่างรวดเร็ว มีการวาดใหม่อยู่บ้าง แต่มันก็ใช้ได้ดีทีเดียว (สำหรับฉันอย่างน้อย)

หมายเหตุตามที่ @John กล่าวถึงด้านล่างส่วนขยายนี้จะทำให้การทำงานเริ่มต้นสำหรับแท็บใหม่ทั้งหมด (แม้กระทั่งที่สร้างขึ้นจากภายใน Chrome)


4
ส่วนขยายนี้ไม่ดี ... มันจะเปิดหน้าต่างใหม่เสมอแม้เมื่อคลิกคำสั่งจากโครเมี่ยมเอง
John Bachir

1
ฉันคิดว่ามันเป็นสิ่งที่ดีจริงๆ (ฉันเกลียดแท็บ :) แต่ฉันเห็นด้วยกับคำถามที่ฉันต้องการเพื่อให้ชัดเจนขึ้นในคำตอบของฉัน ฉันได้ทำการปรับปรุงแล้ว
studgeek

6

อัปเดตสำหรับ Windows 7 pro x64 ต่อไปนี้ Cerin ด้านบน -

Go to HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command

คุณควรเห็นคีย์หนึ่งชื่อ (ค่าเริ่มต้น) ดับเบิลคลิกที่นี่เพื่อรับป๊อปอัปแก้ไข

เปลี่ยนค่าคีย์จาก:

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

ไปยัง

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

เพิ่งยืนยันการทำงานนี้บน Windows 10 ในเดือนมกราคม 2017
เนลสัน

2

คำตอบของ Cerin ด้านบนเป็นคำตอบที่ดี แต่จำเป็นต้องมีการแก้ไข: รหัสที่เสนอเพื่อเปลี่ยนไม่ได้เฉพาะเจาะจงกับ Chrome และแตกต่างกันไปตามผู้ใช้ที่ลงชื่อเข้าใช้ นี่คือทางออกที่ทำงาน:

  1. ไปที่ HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command
  2. คุณควรเห็นคีย์หนึ่งชื่อ (ค่าเริ่มต้น) ดับเบิลคลิกที่นี่เพื่อรับป๊อปอัปแก้ไข
  3. "C:\Program Files\Google\Chrome\Application\chrome.exe" --new-window "%1"เปลี่ยนค่าคีย์ลง

สวัสดีขอบคุณมันใช้งานได้ดี อย่างไรก็ตามหลังจากรีสตาร์ทพีซีหรืออัปเดตโครเมี่ยม (ไม่แน่ใจว่าจะใช้) มันถูกตั้งค่ากลับมา ไม่รำคาญเพราะฉันไม่ทำสองอย่างนี้บ่อยเกินไป แต่คุณมีวิธีหลีกเลี่ยงสิ่งนี้หรือไม่? สิ่งเดียวที่อยู่ในใจของฉันจะสร้างไฟล์รีจิสทรีที่จะทำงานเมื่อเริ่มต้น
Ev0oD

สวัสดีฉันไม่ใช่ผู้ใช้ทั่วไปของ Chrome ดังนั้นฉันจึงไม่ได้ทำการทดสอบอย่างหนักเกี่ยวกับโซลูชันนี้ อย่างไรก็ตามมีโพสต์ในฟอรัมผลิตภัณฑ์ Chrome ที่แนะนำให้คุณต้องเปลี่ยนรีจิสทรีทั้งหมดที่เกิดขึ้นจากโครเมี่ยมเพื่อให้มีการเปลี่ยนหน้าต่างใหม่ ค้นหาข้อมูลเพิ่มเติมได้ที่: productforums.google.com/forum/#!msg/chrome/V8blictbYuI/…
Michael Bahig

1

ตัวเลือกบรรทัดคำสั่งนี้จะทำงานให้คุณ

chrome --new-window 

สิ่งนี้ไม่ตอบคำถาม "เมื่อคลิกลิงค์ในโปรแกรมอื่น ๆ " แต่จะตอบคำถามเฉพาะของฉันและเป็นคำตอบที่ยอมรับได้สำหรับคำถามที่ซ้ำกัน
Nikana Reklawyks
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.