Как да конструираме URL адреси, които не поддържат Mailto

Научете къде JavaScript помага

Кодирането на mailto: URL адресите правилно е малко тромаво. Това е особено вярно, когато трябва да включите предмет, съобщение по подразбиране или други елементи . Вместо просто думи, трябва да използвате шестнадесетични кодове, които представляват ASCII символи, които са кодирани съгласно стандартите RFC 1738 - Унифицирани ресурси за локализиране на ресурси (URL). Не е нужно да запомните или да конструирате тези шестнадесетични представяния от върха на главата си, въпреки че: JavaScript може да го направи за вас.

Функцията на JavaScript encodeURIComponent ()

Функцията JavaScript encodeURIComponent () кодира всеки низ, който се предава като аргумент и я връща за използване. Например, encodeURIComponent ("Doc, do da Dance!") Създава Doc% 2C% 20do% 20da% 20Dance! ,

Да, това е толкова неясно. Ако направите тази криптография на ръка, има вероятност да направите грешка, но JavaScript няма. За да използвате encodeURIComponent (), за да облекчите състава на URL адресите mailto : просто заменете произволен случай на низ в URL с функцията encodeURIComponent () , която вижда нашия низ като аргумент.

Например, да речем, че искате да създадете URL адреса mailto: който инициира съобщение към recipient@example.com с тема "Кога, кога е сега? (Ако сега е тук)". URL адресът ще изглежда така:

за mailto: recipient@example.com предмет = <обект>

Предметът е низът "Кога, кога е сега?" (Ако сега е "тук"). " Низът като аргумент за encodeURIComponent () прави следното:

encodeURIComponent ("Кога, кога е сега?" (ако сега е тук) ") .

Резултатът от това повикване е:

Когато% 2С% 20when% 20is% 20now% 3F% 20 (ако% 20% 22now% 22% 20is% 20here)

Използване на e ncodeURIComponent () С Mailto: URLs

За да използвате encodeURIComponent () в URL адрес на mailto :, съставете цялата връзка (от " ") в функцията JavaScript document.write () , която ще напише текст на документа, сякаш сме го написали в HTML източника .

Например:

("Кога, кога е сега?" (ако е "сега" е " ме изпратете! ")

С