ลิงก์ Mailto ไม่ได้ทำอะไรใน Chrome แต่ทำงานใน Firefox?


149

ดูเหมือนว่าmailtoลิงก์ที่เราฝังไว้ในเว็บไซต์ของเราไม่สามารถทำอะไรใน Chrome ได้แม้ว่ามันจะทำงานใน Firefox

ตัวอย่างง่ายๆที่นี่: http://jsfiddle.net/wAPNH/

<a href='mailto:test@test.com'>hi this is a test</a>

เราจำเป็นต้องทำสิ่งพิเศษเพื่อเปิดใช้งานลิงก์เมลใน Chrome หรือไม่?


ทำงานได้ดีสำหรับฉันคุณมีส่วนขยาย Chrome หรือสิ่งที่จะรบกวนหรือไม่
Ryan Kempt

แอปพลิเคชันใดที่เปิดใน FF เมื่อคุณคลิกที่ลิงก์ mailto
mohkhan

1
ฉันลองใช้ chrome 28 และลิงค์ JSfiddle นั้นใช้ได้ผลสำหรับฉัน (ทำงานบน mac และเปิด mail.app ได้ดี)
sasbury

ฉันพบว่าการดำเนินการmailto:test%40test.comสอดคล้องกันมากขึ้น
Pro Q

คำตอบ:


128

นี่คือการตั้งค่าเบราว์เซอร์ที่เฉพาะเจาะจงคือมันจะทำงานแตกต่างกันไปขึ้นอยู่กับการตั้งค่าเบราว์เซอร์ของผู้ใช้ ผู้ใช้สามารถเปลี่ยนวิธีการmailto:ทำงานของลิงก์ใน Chrome ได้โดยไปที่chrome://settings/handlersหรือChrome Settings->Content Settings->Manage Handlers...

หาก "อีเมล" ไม่ปรากฏในหน้านั้นให้ดูคำตอบนี้เกี่ยวกับวิธีดำเนินการต่อ


7
เยี่ยมมากพฤติกรรมเริ่มต้นคืออะไร
Crashalot

8
ฉันเชื่อว่าค่าเริ่มต้นคือการเรียกใช้โปรแกรมรับส่งเมลบนคอมพิวเตอร์ ฉันรู้ที่ทำงานมันจะทำงานทันเดอร์เบิร์ด หากพวกเขามีการติดตั้ง outlook มันอาจเรียกใช้ outlook ฯลฯ โดยส่วนตัวแล้วมันไม่ได้รัน gmail ตามค่าเริ่มต้นฉันต้องตั้งค่าวิธีนั้น
kennypu

2
@Crashalot ไม่ ลิงค์ mailto เป็นลิงค์ mailto
kennypu

48
การเปิด chrome: // settings /lers ทำให้ฉันว่างเปล่าโดยไม่มีตัวเลือกให้เพิ่ม handler ดูเหมือนว่า Chrome จะเสียอย่างรุนแรงที่นี่: มันจะไม่เปิดจดหมายของฉันที่กำหนดค่า (Thunderbird) เพื่อตอบสนองต่อลิงก์ mailto
ปีเตอร์ฟลินน์

3
@PeterFlynn ดูเหมือนว่า Chrome จะพยายามเรียกใช้ไคลเอ็นต์จดหมายเริ่มต้นที่ติดตั้งบนคอมพิวเตอร์ ตรวจสอบให้แน่ใจว่าตั้งธันเดอร์เบิร์ดเป็นไคลเอนต์เมลเริ่มต้น ดูลิงก์นี้เกี่ยวกับวิธีการทำเช่นนั้น: kb.mozillazine.org/Default_mail_client#Windows
kennypu

108

เนื่องจาก Chrome จัดการกับ mailto ในวิธีที่ต่างกัน คุณสามารถไปที่chrome://settings/handlersและตรวจสอบว่าเป็นตัวจัดการเริ่มต้น ในกรณีของคุณจะไม่มี (เช่นไม่มีอยู่ในรายการ) ตอนนี้ไปที่ gmail.com คุณควรเห็นสิ่งนี้เมื่อคุณคลิกที่ปุ่มข้างปุ่มที่คั่นหน้า

ตั้งค่า mailto เป็นโครเมี่ยม

หากคุณต้องการเปิดลิงก์อีเมลทั้งหมดผ่าน gmail ให้ตั้ง "ใช้ Gmail" ตอนนี้เมื่อคุณคลิกที่ปุ่ม mailto, chrome จะเปิดขึ้นโดยอัตโนมัติใน gmail


1
นี้ทำงานสำหรับฉันโดยไม่ใช้ Gmail การเยี่ยมชมครั้งแรกและคลิกที่ "อนุญาตให้ Gmail ..." ไม่มีการดำเนินการในการตั้งค่าที่จะ changed-
chrismarx

1
Gmail? Gmail มีส่วนเกี่ยวข้องกับเรื่องนี้อย่างไร ฉันต้องการให้ Chrome เปิด Thunderbird แทนที่จะเปิด Chrome ใหม่
ปีเตอร์ฟลินน์

ไปที่ chrome: // settings /lers เพื่อตั้งค่าตัวจัดการของคุณ
Rajesh Hegde

1
@ Gi1ber7 คุณสามารถไปที่ chrome: // settings / handlers เพื่อเปลี่ยนการตั้งค่า mailto
Rajesh Hegde

1
ฉันไม่มีตัวจัดการที่นั่น wth
Boris Gafurov

42

ในกรณีของโครเมี่ยมที่เกี่ยวข้องเป็นMAILTOโปรโตคอลในวินโดวส์ 10

ผมเปลี่ยนการเชื่อมโยงไปยัง Outlook โดยใช้"โปรแกรมเริ่มต้น" -> "เชื่อมโยงชนิดของไฟล์หรือโปรโตคอลด้วยโปรแกรม"

MAILTO เป็นวิธีด้านล่างในรายการ ภาพหน้าจอนี้อาจช่วยได้

ป้อนคำอธิบายรูปภาพที่นี่


โอเค แต่ถ้าเราต้องการให้มันเปิดในเว็บไซต์ที่เฉพาะเจาะจงมากกว่าแอพ
Kyle Delaney

2
เมื่อใช้ Windows 10 ฉันต้องเลือก Outlook ในรายการด้านซ้ายก่อนจึงจะเห็นช่องทำเครื่องหมาย 'mailto' โปรโตคอลในรายการด้านขวา
Tom McDonald

15

ฉันยังประสบปัญหานี้และในที่สุดก็ติดตามดูว่าลิงก์ของฉันอยู่ใน iframe และเว็บแอปของฉันใช้ https Chrome ปิดกั้นเนื่องจากสิ่งนี้ (Chrome จะเปิดลิงก์ mailto อื่นนอก iframe)

ในลิงก์ mailto ไม่ทำงานภายในกรอบโครเมี่ยม (มากกว่า https) , kendsnyder กล่าวถึงเพียงแค่เปลี่ยน

<a href="mailto:...">email</a>

ถึง

<a target="_top" href="mailto:...">email</a>

Voila แก้ไขปัญหาแล้ว ลิงก์ mailto นั้นใช้ได้ในทุกเบราว์เซอร์


ฉันอยากรู้ว่าการใช้target=_parent"ยังสามารถใช้ได้หรือไม่ หาดี
Termato

ขอบคุณ ใช้งานได้ดีมาก @Termato มันอาจจะทำงานได้ถ้าเป็นเฟรม "top" เพียงแค่ใช้target="_top"หรือถ้าใช้ JavaScript:window.top.location.href = 'mailto:...'
Neil Monroe

ตอนนี้ target = "_ top" ก็ไม่ทำงานเช่นกัน :( วิธีแก้ปัญหาอื่น ๆ ฉันลองใช้ "_parent" และก็ใช้งานไม่ได้เช่นกัน
Vijay Mishra

target="_top"ทำงานให้ฉันภายใน iframe ใน Google Chrome
John Doherty

@Basj ทำงานได้ดีบน Chrome (ล่าสุด) ของฉัน คุณมีไคลเอ็นต์อีเมลเริ่มต้นบนคอมพิวเตอร์ของคุณหรือไม่
โทมัส Ayoub

13

คุณต้องอนุญาตให้ gmail ติดตั้งตัวจัดการบริการสำหรับโปรโตคอล mailto:

1) ไปที่ gmail

2) คลิกไอคอนรูปสี่เหลี่ยมขนมเปียกปูนขนาดเล็กที่ส่วนท้ายของแถบที่อยู่ (ภาพหน้าจอ)

3) เพลิดเพลินไปกับ

ป้อนคำอธิบายรูปภาพที่นี่


ฉันไม่เห็นสิ่งใดเลย
Boris Gafurov

@BorisGafurov เวอร์ชัน Chrome ของคุณเป็นรุ่นล่าสุดหรือไม่
jj_

7

คุณสามารถลองไปที่chrome://settings/handlersและตั้งค่าmailto:เป็นnoneเป็นgmail


7
เช่นเดียวกันที่นี่: chrome 27 ไม่มีตัวจัดการสำหรับการกำหนด mailto หรือสิ่งอื่นใดสำหรับเรื่องนั้น .. พวกเขาอาจจะเริ่มต้นการรักษาความปลอดภัยใหม่ในโครเมี่ยม ใน FF ฉันต้องเพิ่มด้วยตนเองเช่นกัน
Robert Hoffmann

กันที่นี่ Chrome โดยทั่วไปจะใช้การเชื่อมโยง wrt mailto ที่ไม่ถูกต้อง
Peter Flynn

6

แก้ไขที่เหมาะกับฉันตั้งแต่ตัวจัดการโปรโตคอลของฉันว่างเปล่า

https://productforums.google.com/forum/#!topic/gmail/CQMCGRvyhCM

ดูคำตอบ redfish43 เพื่อสรุป

สำหรับ mailto: - ตรวจสอบให้แน่ใจว่าคุณได้ลงชื่อเข้าใช้ Gmail และหน้าต่างที่ใช้งานอยู่คือหน้า Gmail หลักของคุณ (หรือจะไม่มีอะไรเกิดขึ้น) - คัดลอก / วางลงในแถบที่อยู่:

javascript:navigator.registerProtocolHandler("mailto","https://mail.google.com/mail/?extsrc=mailto&url=%s","Gmail")

เพิ่ม javascript: ไปที่ด้านหน้าอีกครั้งหากจำเป็นเพราะเมื่อคุณวาง Chrome อาจตัดทุกอย่างก่อนและรวมถึงลำไส้ใหญ่ จากนั้นกด Enter

เมื่อหน้าต่างป๊อปอัปเปิดขึ้นให้คลิกที่"อนุญาต"


เกี่ยวกับ outlook.com?
Kyle Delaney

3

ผมมีปัญหาเหมือนกัน. ปัญหาด้วยเหตุผลบางอย่างที่ทำให้ Chrome เปลี่ยนตัวเองเป็นเครื่องมือเริ่มต้นเพื่อเปิดลิงก์ mailto: วิธีแก้ปัญหาให้ไคลเอ็นต์อีเมลของคุณเป็นแอปเริ่มต้นเพื่อเปิด วิธีการ: http://windows.microsoft.com/en-nz/windows/change-default-programs#1TC=windows-7

โชคดี


ขอบคุณสิ่งนี้มีประโยชน์ต้องลองไม่ได้อันดับที่สูงขึ้นก่อนที่ฉันจะมาที่นี่ :(.
Boris Gafurov

2

ฉันพบคำตอบนี้ในฟอรัม Google ที่ใช้งานได้ ในเชิงอรรถมันระบุว่า 'googleapps.exe' - ฉันไม่มีสิ่งนี้และยังใช้งานได้ เพียงทำตามคำแนะนำด้านล่าง แต่ปิดแอปพลิเคชันทั้งหมดก่อนทำการเปลี่ยนแปลงรีจิสทรี ฉันยังบันทึกค่าที่มีอยู่ในกรณีที่ใช้งานไม่ได้


เพียงพิมพ์ "เรียกใช้" ในแถบค้นหาของคุณจากนั้นพิมพ์ "regedit" จากนั้นเดินทางไปที่:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command\ 

แก้ไข (ดับเบิลคลิก) "(ค่าเริ่มต้น)" เป็น:

"C:\Program Files (x86)\Google\Google Apps\googleapps.exe" --domain= --mailto.google.com="%1" 

แค่นั้นแหละ! บันทึกและปิดและควรใช้งานได้อย่างสวยงาม!

การใช้วิธีนี้จะป้องกันไม่ให้คุณดาวน์โหลด GMail Notifier ซึ่งสำหรับคนที่ใช้ GTalk ไม่ต้องการเพราะมันทำเพื่อเรา ฉันไม่แน่ใจว่าทำไม Google ไม่สามารถแก้ปัญหานี้ได้อย่างง่ายดาย .. ฉันได้ยินมาว่า Google Apps ยังไม่ได้ทดสอบอย่างสมบูรณ์ใน Windows 7 แต่เห็นได้ชัดว่าแท็กเดียวกันใช้ได้กับมัน

หมายเหตุ: สิ่งเดียวที่มีวิธีนี้คือคุณต้องมีไฟล์ googleapps.exe ในเครื่องของคุณ ฉันเชื่อว่าฉันได้รับพร้อมกับ GooglePack ฟรีจากเว็บไซต์ของพวกเขาซึ่งตอนนี้ถูกยกเลิกแล้ว ฉันพยายามค้นหาทางอินเทอร์เน็ตเพื่อดาวน์โหลด แต่มันแปลกมากพอที่มันจะสงวนไว้สำหรับธุรกิจเท่านั้นและไม่มีลิงค์ดาวน์โหลดจากเว็บเพราะทุกคนที่ได้ใช้งานสตรีมโดยใช้ google updater .. แปลก ขอให้โชคดี!


1

โซลูชันอื่นคือการใช้การควบคุมป๊อปอัพ / ฟอร์ม / ผู้ใช้ที่กำหนดเองของคุณซึ่งจะถูกตีความในระดับสากลในเบราว์เซอร์ทั้งหมด

ได้รับสิ่งนี้จะไม่ใช้ประโยชน์จาก "mailto" ออกจากความสามารถของกล่อง ทุกอย่างขึ้นอยู่กับความพร้อมในการใช้งานที่คุณยึดถือ น่าเสียดายสำหรับตัวเอง - เมลจะต้องมีให้ทุกคนโดยค่าเริ่มต้นโดยไม่ต้อง "ทำให้ลูกค้าไม่สะดวก"

การตัดสินใจของคุณในท้ายที่สุด


1

ในmacOS ให้ตรวจสอบการตั้งค่า Mail.app ด้วยซึ่งแอปใดที่ถูกเลือกให้เป็นแอปอีเมลเริ่มต้น / เชื่อมโยงกับmailto:ลิงก์:

หากคุณเคยคลิกการแจ้งเตือนนั้นบน Gmail ซึ่งอนุญาตให้เปิดลิงก์ใน Gmail แทนแอปของคุณ - และหลังจากรีเซ็ตตัวจัดการ Chromeคุณต้องแก้ไขด้วยตนเองในการตั้งค่า Mail.app

ภาพหน้าจอ


0

ปกติ<a href="mailto:hi@hi.com"></a>ควรใช้งานได้ แต่โปรดจำไว้ว่าคุณต้องตั้งค่าโปรแกรมอีเมลเริ่มต้นในคอมพิวเตอร์ของคุณ ตัวอย่างเช่นฉันใช้ Ubuntu 14.04 และอีเมลเริ่มต้นคือธันเดอร์เบิร์ดซึ่งทำงานได้ดี


0

'ใช้ Chrome เชิญปัญหา' - ไม่ระบุตัวตน (เพียงอ้างอิงสัญลักษณ์)

Chrome นั้นมีชื่อเสียงโด่งดังในเรื่องของยูทิลิตี้ที่เปิดใช้งานการรักษาความปลอดภัยเริ่มต้นมากมายและนั่นคือสาเหตุที่ปัญหาของคุณมาจาก

อย่างไรก็ตามวิธีนี้สามารถยกเลิกได้โดย 'การตั้งค่าไคลเอนต์อีเมลเริ่มต้น' (เนื่องจากไม่มีการตั้งค่าไคลเอนต์อีเมลเริ่มต้น) หรือโดยการตั้งค่าตัวจัดการเริ่มต้นภายใต้ 'chrome: // settings / handers' (โดยค่าเริ่มต้น ละเว้น ')


1
ใช่นี่เป็นหนึ่งในสาเหตุที่พบบ่อยที่สุด และวิธีแก้ปัญหาที่แนะนำควรทำงานได้อย่างแน่นอน

0

ฉันแก้ไขปัญหาโดยใช้รหัสนี้:

    
<button onclick="email()">Contact me !</button>	

<script>
function email() {
    var str = window.open('mailto:aaaaaa@aaaaaa.net', '_blank');
}
</script>

มันใช้งานได้สำหรับฉันเหมือนมีเสน่ห์!


-3

คุณสามารถใช้สิ่งนี้เช่นกัน

<a href="javascript:void(0);" onclick="javascript:window.location.href='mailto:info@example.com'; return false;">info@example.com</a>

ฉันคิดว่านี่เป็นวิธีที่ดีที่สุดในการแก้ไขปัญหาของ Chrome

ขอบคุณ ..


'0' ไม่ 'O' void()ใน ดูเหมือนว่าจะทำงานได้ไม่ดีนักสำหรับฉัน มีอะไรอีกบ้างที่ต้องเพิ่มเข้ามา?
Rob

-7

โปรดตรวจสอบสิ่งนี้:

สิ่งนี้ใช้งานได้ใน Chrome และเบราว์เซอร์ทั้งหมด

<a href="mailto:test.test@gmail.com">Test</a>

ลองและทำงานอย่างยอดเยี่ยม

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