2012-02-29 33 views
9

Tôi có liên kết mailto như vậy <a href="mailto:a&[email protected]" > nó hiển thị chính xác trên html nhưng khi chúng tôi nhấp vào liên kết, triển vọng chỉ hiển thị địa chỉ đến. Có ai phải đối mặt với cùng một vấn đề xin vui lòng đề nghị.Sự cố với liên kết mailto trong địa chỉ email có chứa ký hiệu &?

+0

Dấu và không phải là ký tự hợp lệ trong địa chỉ E-Mail, phải không? (Edit: oh thực sự, [nó là.] (Http://en.wikipedia.org/wiki/E-mail_address#Valid_email_addresses)) Tôi đoán phần trăm mã hóa là bạn của bạn sau đó –

+2

Và 'mailto' là rất cũ. 90% người truy cập trang web của bạn không sử dụng thư hệ thống của họ, nhưng dịch vụ thư là gmail. Một liên kết đến biểu mẫu liên hệ là nhiều người dùng thân thiện –

Trả lời

18

Percent encoding chuỗi là bắt buộc đối với IE và tôi giả định sẽ hoạt động trên các trình duyệt. Từ this MSDN document:

Windows Internet Explorer 7 trở lên. Bạn phải mã hóa phần trăm tất cả các ký tự dành riêng cho URL trong địa chỉ mailto :. Ví dụ: ký hiệu số (#) được sử dụng làm số nhận dạng phân đoạn trong URL. Khi xử lý một địa chỉ như some#[email protected], Internet Explorer chỉ sao chép phần lên ký hiệu số vào ứng dụng thư khách; phần mảnh bao gồm ký hiệu số được bỏ qua. Hành vi này là do thiết kế.

Vì vậy, bạn cần

<a href="mailto:a%26b_admin%40xyz.com"> 

Như đã nói, tôi mong đợi một địa chỉ phần trăm mã hóa sẽ làm việc trong tất cả các trình duyệt, nhưng tôi không biết chắc chắn. Tôi có thể xác nhận nó hoạt động với Chrome và Thunderbird.

+0

Bạn đá, Pekka. – Konerak

+1

Dòng JavaScript này sẽ chuyển đổi các ký hiệu và do đó bạn không phải thực hiện nó bằng tay: 'var emailFriendlyUrl = currentUrl.replace (/ &/g, '% 26');'. –

Các vấn đề liên quan