2009-08-11 88 views
2

我有一個Facebook的iframe應用程序,我已經提供了共享功能。我使用此代碼:問題在Facebook共享功能

<script> 
    function fbs_click() 
    { 
     u='<?php echo $shareURL;?>'; 
     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> 
<style> 
    html .fb_share_button { 
    display: -moz-inline-block; display:inline-block; 
    padding:1px 20px 0 5px; height:15px; border:1px solid #d8dfea; 
    background:url(http://b.static.ak.fbcdn.net/rsrc.php/z39E0/hash/ya8q506x.gif) 
    no-repeat top right; 
    } 
    html .fb_share_button:hover { 
     color:#b5b8d3; border-color:#295582; background:#3b5998 
     url(http://b.static.ak.fbcdn.net/rsrc.php/z39E0/hash/ya8q506x.gif) 
     no-repeat top right; text-decoration:none; 
    } 
</style> 

<a href="http://www.facebook.com/share.php?u=<url>" class="fb_share_button" onclick="return fbs_click()" target="_blank" style="text-decoration:none;">Share</a> 

我現在面臨的問題是,如果我通過u到我的網站網址,然後裏面的份額框的標題顯示正常,但是當貼到我的個人主頁上,點擊鏈接重定向我我的Facebook應用程序之外,我不希望我希望它留在Facebook頁面內。 但是,如果我將u參數更改爲http://apps.facebook.com/app/之類的內容,那麼在共享框中標題顯示的是apps.facebook.com,當我發佈在我的個人資料上時,點擊它會將我重定向到facebook應用程序中,但會轉到一個新選項卡上。

我只是想根據傳遞的值設置標題,如果我點擊它在我的個人資料頁面上,它應該保持在facebook內。

回答

10

我發現這個問題,你必須改變在window.open的參數和傳遞價值進行urlencode的解決方案(我在PHP這樣做)

我附上改變的代碼:

1)

<?php 
    $title=urlencode('Facebook Share Platform'); 
    $image=urlencode('imagepath'); 
    $summary=urlencode('Check This Out'); 
    $url=urlencode('http://apps.facebook.com/yourapplication'); 
    ?> 

2)

window.open('http://www.facebook.com/sharer.php?s=100&amp;p[title]=<?php echo $title;?>&amp;p[summary]=<?php echo $summary;?>&amp;p[url]=<?php echo $url; ?>&amp;&p[images][0]=<?php echo $image;?>', 'sharer', 'toolbar=0,status=0,width=626,height=436'); 

希望這有助於其他誰正面臨同樣的問題。

感謝

+1

很好的答案。你知道如何發送多個圖像嗎?它似乎應該像這樣工作'&p [images] [0] = image0&p [images] [1] = image1',但它沒有。 – 2011-07-04 01:35:22

+0

用於urlencode的+1 – 2013-04-05 08:55:00

1
def fb_share_knob opts={} 
    opts.each { |k,v| opts[k] = CGI.escape(v) if v.present? } 
    sharer_url = "http://www.facebook.com/sharer.php?s=100&p[url]=#{ opts[:url] }&p[title]=#{ opts[:title] }&p[summary]=#{ opts[:summary] }&p[images][0]=#{ opts[:image] }" 
    <<-FB_SHARE_LINK 
    <script type="text/javascript"> 
    function fbs_click() { 
     window.open('#{ sharer_url }','sharer','toolbar=0,status=0,width=626,height=436'); 
     return false; 
    } 
    </script> 
<a href="#{ sharer_url }" onclick="return fbs_click()" target="_blank" class="fb_share_link">Share on Facebook</a> 
FB_SHARE_LINK 
end 

Ruby代碼。圖片加載問題:如果您想分享的圖片位於您的測試服務器上,請確保您的防火牆可以從您的防火牆外部訪問。