2013-06-17 22 views
8

Facebookの共有者を立ち上げる新しいウェブサイトの画像にonClick機能を設定したいと思います。onClick:facebookで画像を共有

はここで、私はおよそ

<div id="mImageBox"> 
<img id='my_image' src='' width="auto" height="auto"/> 
</div> 

画像srcが、それがそのように「my_image」

を使用して別のJavaScript関数によって注入されていますbecouse空白になって話しているのか理解に役立つことがあり、コードの一部PICESですうまく

<script>function fbs_click() {u=location.href;t=document.title;window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false;}</script> 

<div id="mImageBox"> 
<a rel="nofollow" href="http://www.facebook.com/share.php?u=<;url>" onclick="return fbs_click()" target="_blank"><img id='my_image' src='' width="auto" height="auto"/></a> 
</div> 

のonClick関数作業を、owever、それはIMGが配置されているページにリンクし、N:私はこの方法で設定するのonClick機能を試してみましたIMGそのもの!

私には何か提案がありますか?

ジオ

+0

fbs_click()関数がページを共有しているようです。どのように 'u = location.href;'を使用しているかに注目してください。どういうわけか、現在のページではなく、画像のURLに 'u'を変更しなければならないと思います。 – uber5001

+0

私もそれに気付きました。img idからurlイメージを取得するための解決策はありますか? – iGio90

答えて

10

はこれを試してみてください。

<div id="mImageBox"> 
<img id='my_image' src='' alt='' width="auto" height="auto" onclick="fbs_click(this)"/> 
</div> 

<script> 
    function fbs_click(TheImg) { 
    u=TheImg.src; 
    // t=document.title; 
    t=TheImg.getAttribute('alt'); 
    window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false; 
} 
</script> 

あなたはその場合のJSので、無効JSケースのために(<IMG>タグを囲む)< >タグを使用する必要はありませんsrc属性も注入する必要があります。

+2

'TheImg.src'がフルURLでないとどうなりますか?例: 'TheImg.src =" /assest/images/imageExample.jpg " – uber5001

+0

作品!ありがとうございました! – iGio90

+1

絶対URLを返します。しかし、IE6では相対URLを返します。ここでは、IE6のソリューションです:http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue –

12

次の機能を呼び出すだけで、画像をFacebookのリンクとテキストと共有できます。 FacebooksのJavaScript API 2.9以降

function sharefbimage() { 
    FB.init({ appId: `your appid`, status: true, cookie: true }); 
    FB.ui(
    { 
     method: `share`, 
     name: 'Facebook Dialogs', 
     href: $(location).attr('href'), 
     link: 'https://developers.facebook.com/docs/dialogs/', 
     picture: 'your image url', 
     caption: 'Ishelf Book', 
     description: 'your description' 
    }, 
    function (response) { 
     if (response && response.post_id) { 
      alert('success'); 
     } else { 
      alert('error'); 
     } 
    } 
); 
+0

ありがとう!私は約2日間見回してきました、それは私にとって唯一の労働者です。私は、バージョン: 'v2.5'をinitメソッドに追加するだけでした。ありがとうございました! –

+0

同じコードを使用し、エラーが発生しました - Uncaught ReferenceError:FBが定義されていません。私は何をすべきか? –

+1

@KunjanShahまず、あなたのウェブサイトにFacebook JS SDKを追加する必要があります。 [ここをクリック](https://developers.facebook。com/docs/javascript/quickstart) – Nikola

0

は先週、上記の溶液は、もはや機能しないので、(私はこれを見つけるために半日かかりました!!!)死んでいます。 v2.10では、FB.uiの画像パラメータがもう存在しません。 しかし、Facebookが各共有画像ごとにOpen Graphデータを個別にスクラップするように、画像ごとに個別のURLパラメータを生成する回避策が見つかりました。参考までに私のコードをthis postで共有しました。

関連する問題