Cách xây dựng Mailto không thành công: URL

Tìm hiểu ở đâu JavaScript giúp ích

Mã hóa mailto: URL chính xác là một chút cồng kềnh. Điều này đặc biệt đúng khi bạn cần bao gồm dòng chủ đề, thông báo mặc định hoặc các yếu tố khác. Thay vì các từ đơn giản, bạn phải sử dụng các mã hex, đại diện cho các ký tự ASCII được mã hóa theo RFC 1738 — Các tiêu chuẩn Định vị Tài nguyên Đồng nhất (URL). Tuy nhiên, bạn không cần phải nhớ hoặc xây dựng các biểu diễn hex này ở đầu của bạn: JavaScript có thể làm điều đó cho bạn.

Hàm JavaScript encodeURIComponent ()

Hàm encodeURIComponent () của JavaScript mã hóa bất kỳ chuỗi nào nó được truyền vào như một đối số và trả về nó để sử dụng. Ví dụ, encodeURIComponent ("Doc, do da Dance!") Tạo Doc% 2C% 20do% 20da% 20Dance! .

Vâng, nó tối nghĩa. Nếu bạn thực hiện mật mã này bằng tay, rất có thể là bạn sẽ phạm sai lầm - nhưng JavaScript thì không. Để sử dụng encodeURIComponent () để giảm bớt thành phần mailto của bạn : URL, chỉ cần thay thế bất kỳ sự xuất hiện nào của một chuỗi trong URL bằng hàm encodeURIComponent () , mà xem chuỗi của chúng ta là một đối số.

Ví dụ: giả sử bạn muốn tạo một mailto: URL để khởi tạo một tin nhắn tới recipient@example.com với chủ đề "Khi nào, khi nào?" (Nếu "bây giờ" ở đây). " URL sẽ trông giống như sau:

mailto: recipient@example.com? subject =

Đối tượng là chuỗi, "Khi nào, khi nào?" (Nếu "bây giờ" ở đây). " Chuỗi như là một đối số để encodeURIComponent () thực hiện như sau:

encodeURIComponent ("Khi nào, khi nào bây giờ? (nếu \" bây giờ \ "là ở đây)") .

Kết quả của cuộc gọi hàm này là:

Khi% 2C% 20when% 20is% 20now% 3F% 20 (nếu% 20% 22now% 22% 20is% 20here)

Sử dụng e ncodeURIComponent () Với Mailto: URL

Để sử dụng encodeURIComponent () trong một mailto : URL, soạn toàn bộ liên kết (từ "") trong hàm JavaScript document.write () , sẽ viết bất kỳ văn bản nào tài liệu, giống như chúng ta đã gõ nó trong nguồn HTML .

Ví dụ: