subscribe
Tags:
 
2010
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
Posts Tagged 'Javascript'
2010-04-17

Recently, it became necessary for me to add a "share on facebook" feature to a project I am working on. A quick web search for "facebook share api" turned up the Facebook Share API that gives example code for for formatting a URL to share data on Facebook.

The ony problem the Facebook share code is that the code doesn't work. A custom title for what is being shared get's overridden by the title of the page at the given URL. A bit more digging with my internet shovel turned up some information about URL and Title being sent as part of an array and the URL would be sent as p[url] and the Title would be sent as p[title].

With that in mind, I wrote the following JavaScript function to format a URL and Title and share them on Facebook.

function shareOnFacebook(share_title,share_url) {
    //encode the share_title
    t=encodeURIComponent(share_title);
    //encode the share_url
    u=encodeURIComponent(share_url);
    //determine the target url to open
    target_url='http://www.facebook.com/sharer.php?s=100&p[title]='+t+'&p[url]='+u+'&t='+t;
    //open the target
    window.open(target_url,'share','toolbar=0,status=0,width=600,height=400');
}

Now quit reading, and go share some useless information of Facebook.

By the way, there is a 100 character limit for the title.

Update June 18 2010: Since both images and description have been asked for... The following function will allow the user to also set the image and description (which facebook call subject for some asinine reason)

function shareOnFacebook(title,url,desc,image) {
    t=encodeURIComponent(title);
    d=encodeURIComponent(desc);
    u=encodeURIComponent(url);
    i=encodeURIComponent(image);
    share_url='http://www.facebook.com/sharer.php';
    share_url+='?s=100&p[title]='+t+'&p[summary]='+d+'&p[url]='+u;
    share_url+='&p[images][0]='+i;
    share_url+='&t='+t+'&e='+d;
    var myWindow = window.open(share_url, 'sharer', 'toolbar=0,status=0,width=626,height=436');
}

Well there you have it, I hope it works for you.

PS. If you are so inclined, you could buy me a cup of coffee. hint hint wink wink

Comments
neuholger:
Great, this script is working on my page. But how can I add an Image?

All the tests for the meta Tags didn't work including the
<link rel="image_src" ...
neuholger:
Yeah, I found a solution!
With that solution, you can also integrate several thumbnails.

// Javascript for ShareOnFacebook Buttons
function shareOnFacebook(share_title,share_url,icon_url) {
//encode the share_title
t=encodeURIComponent(share_title);
//encode the share_url
u=encodeURIComponent(share_url);
//encode the icon_url
i=encodeURIComponent(icon_url);
//determine the target url to open
target_url='http://www.facebook.com/sharer.php?s=100&p[title]='+t+'&p[url]='+u+'&t='+t+'&p[images][0]='+i;
//open the target
window.open(target_url,'share','toolbar=0,status=0,width=600,height=400');
}
Yea! that's the spirit.
Thanks for posting the solution to use images. It is the visual aspect of sharing that really packs a punch
Anonymous:
Any idea how to add a more elaborate description ? except from the title ?
Name:
not required
Email:
not required (will not be displayed)
Website:
not required (will link your name to your site)
Comment:
required
Please do not post HTML code or bbcode unless you want it to show up as code in your post. (or if you are a blog spammer, in which case, you probably aren't reading this anyway).
Prove you are human by solving a math problem! I'm sorry, but due to an increase of blog spam, I've had to implement a CAPTCHA.
Problem:
7 minus 7
Answer:
required
2010-02-03
Although I had thought about updating the look of my music page for a while, other things took precedent. Well, as life sometimes is, I was introduced to a feature in one of the finer browsers that one can use.

The Feature
Picture if you will.......
friend: you should fix your music page cuz it's crap
me: what?
friend: I went there and didn't know what to do
me: did you click the arrow pointing to the right that typically signifies "play"?
friend: what arrow?
me: whoa! what browser are you using?
friend: firefox
me:(pretending to be Morpheus) Show Me!

On my music page, I had a bunch of <audio> tags so that visitors to my site could hear me butcher various tunes that I have recorded. Unfortunately, the Firefox theme that my friend was using made Firefox's default audio player completely unusable.

Fine, I didn't like the look of the default player anyway!

What I Should Have Done
In hindsight, I should has just written some hardcoded javascript and CSS to make a nifty HTML5 audio player thing because I have decided that I really don't like working with JavaScript. Using a framework like GWT or Pyjamas that outputs JavaScript is fine, but hacking on JavaScript just isn't my thing. I suppose that it might have been easier if I had used a large JavaScript library like JQuery, but where is the hell is the fun in that? Oh well, maybe next time.

What I Did Do
Since my music page is created dynamically from information pulled from a database, I wanted a way to dynamically generate an HTML5 audio player based upon formatted text on a page; and well... that's what I did, and I named the project PagePlayer (boring, I know). By building it myself, I know exactly how the controls will look in various browsers, regardless of which theme the browser is using.

It may not be the best looking JavaScript generated music player thingy on the web, but it is my JavaScript generated music player thingy.

So fire up your HTML5 compatible browser and head over to my "music" page to check it out. Anyone interested in the code should visit the PagePlayer project page, where the HTML,JavaScript,CSS, images, and audio can be downloaded.

Now stop reading, and check your code for graceful degredation and IE6 compatibility.
Comments
Name:
not required
Email:
not required (will not be displayed)
Website:
not required (will link your name to your site)
Comment:
required
Please do not post HTML code or bbcode unless you want it to show up as code in your post. (or if you are a blog spammer, in which case, you probably aren't reading this anyway).
Prove you are human by solving a math problem! I'm sorry, but due to an increase of blog spam, I've had to implement a CAPTCHA.
Problem:
0 plus 5
Answer:
required