Avatar of badwolfff
badwolfff
Flag for United Kingdom of Great Britain and Northern Ireland asked on

How do I use jQuery to convert a url in these three formats?

The url I need to process is: http://demo.missionfamily.org/index.php?route=product/allevent

and it should become:

1.

https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fdemo.missionfamily.org%2Findex.php%3Froute%3Dproduct%2Fallevent&t=All+Events+Listing

2.

https://twitter.com/intent/tweet?text=Mission%20Family%20ACLI&url=http%3A%2F%2Fdemo.missionfamily.org%2Findex.php%3Froute%3Dproduct%2Fallevent&via=Mission_Family&original_referer=http%3A%2F%2Fdemo.missionfamily.org%2Findex.php%3Froute%3Dproduct%2Fallevent

3.

I don't know how to formulate this one at all, but here are the details:
mailto: email address has to be empty as it will need to be filled in
subject: whatever I can get from: var thisTitle (whose spaces will need to be converted into %20)
body: whatever I can get from: var thisLink (this will be a url link which will need to be converted to the format compatible with the maito syntax.

So in the third case basically the result should look something like: mailto:?subject=Congrats%20Obama&body=http%3A%2F%2Fdemo.missionfamily.org%2Findex.php%3Froute%3Dproduct%2Fallevent&t=All+Events+Listing

Please help, as I am completely clueless. The rest of the code for the structure where these links have to go I have already managed but I haven't a clue as to how to generate these links

thanks in advance
jQueryHTMLJavaScript

Avatar of undefined
Last Comment
Rob

8/22/2022 - Mon
Rob

something like this:

$(function() {
    var url = location.href;
    var title = document.title;
    var facebook = "https://www.facebook.com/sharer/sharer.php?u=" + url + "t=" + title;
    var twitter = "https://twitter.com/intent/tweet?text=Mission%20Family%20ACLI&url="+url+"&via=Mission_Family&original_referer="+url;
    var email = "mailto:?subject=Congrats%20Obama&body="+url+"&t="+title;
})

Open in new window

badwolfff

ASKER
Hi Rob,

hmmm... I think you misunderstood me. That I knew how to do. What I need is how to convert the normal URL format in to the appropriate format that facebook/twitter/email take (where spaces become %20, : become %3A, etc.)

thanks
Rob

ah sorry, then you just use the encodeURI() function:

$(function() {
    var url = encodeURI(location.href);
    var title = encodeURI(document.title);
    var facebook = "https://www.facebook.com/sharer/sharer.php?u=" + url + "t=" + title;
    var twitter = "https://twitter.com/intent/tweet?text=Mission%20Family%20ACLI&url="+url+"&via=Mission_Family&original_referer="+url;
    var email = "mailto:?subject=Congrats%20Obama&body="+url+"&t="+title;
})
This is the best money I have ever spent. I cannot not tell you how many times these folks have saved my bacon. I learn so much from the contributors.
rwheeler23
badwolfff

ASKER
Hi Rob,

I am getting the output like this (for another URL):

url = http://demo.missionfamily.org/index.php?route=product/event&product_id=10
title = Test%20event-%20by%20partner

I think this needs some other type of encoding, don't you? The http:// should become:     http%3A%2F%2F
badwolfff

ASKER
I managed it with encodeURIComponent :D

thanks for pointing me in the right direction.
ASKER CERTIFIED SOLUTION
Rob

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
badwolfff

ASKER
I've requested that this question be closed as follows:

Accepted answer: 500 points for Rob's comment #a40899696
Assisted answer: 0 points for badwolfff's comment #a40899713

for the following reason:

The solution offered was nearly perfect, just needed a bit of tweaking.
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.
Rob

LOL you beat me by 30 sec :)