2015-01-21 3 views
3

나는 링크를 공유하기 위해 팝업에서 facebook, twitter, google + 아이콘을 표시하는 기능이 필요한 프로젝트 작업을하고 있습니다.페이스 북에서 공유 링크, fb obj를 다시 초기화하는 방법

트위터와 Google+가 잘 작동합니다. 하지만 페이스 북의 경우 공유 아이콘이 처음 팝업 될 때 표시되지만 메인 페이지를 새로 고칠 때까지 팝업을 다시로드 한 후에 표시되지 않습니다.

나는 fb obj가 이미 팝업을 처음으로 초기화 할 때 팝업이 다시로드 될 때 다시 초기화하지 못하기 때문에 그렇게 생각한다.

누구든지 제안 할 수 있습니다. 어떻게 해결할 수 있습니까?

Google+에

<a href="https://plus.google.com/share?url=<?php echo 'dynamically_created_link_with_querystring';?>" onclick="javascript:window.open(this.href,'', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;"> 
<img src="https://www.gstatic.com/images/icons/gplus-16.png" alt="Share on Google+"/></a> 

트위터

<script> 
window.twttr = (function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0], 
    t = window.twttr || {}; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); 
    js.id = id; 
    js.src = "https://platform.twitter.com/widgets.js"; 
    fjs.parentNode.insertBefore(js, fjs); 

    t._e = []; 
    t.ready = function(f) { 
    t._e.push(f); 
    }; 

    return t; 
}(document, "script", "twitter-wjs")); 
</script> 
<a href="http://www.twitter.com/intent/tweet?url=<?php echo 'dynamically_created_link_with_querystring';?>" > 
<img src="images/Twitter_logo_blue_16.png"/></a> 

: 나는 다음 코드를 사용

<script> 
(function(d, s, id) { 
      var js, fjs = d.getElementsByTagName(s)[0]; 
      if (d.getElementById(id)) return; 
      js = d.createElement(s); js.id = id; 
      js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0"; 
      fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 
</script> 
<div id="fb-root"></div> 
<div class="fb-share-button" data-href="<?php echo "dynamically_generated_link_with_querstring";?>" data-layout="icon"></div> 

답변

1

다음 코드를 사용하여 위의 문제를 해결 페이스 북 :

뉴 페이스 북 코드

<a href="javascript:fbShare('<?php echo dynamically_generated_link_with_querystring ?>', 520, 350)"> 
<img src="images/fb_icon.png" height="32"width="32"/> 
</a> 
<script> 
function fbShare(url, winWidth, winHeight) { 
    var winTop = (screen.height/2) - (winHeight/2); 
    var winLeft = (screen.width/2) - (winWidth/2); 
    url = encodeURIComponent(url); 
    window.open('http://www.facebook.com/sharer.php?s=100&p[url]=' + url, 'sharer', 'top=' + winTop + ',left=' + winLeft + ',toolbar=0,status=0,width=' + winWidth + ',height=' + winHeight); 
} 
</script> 

된 페이스 북 코드를

<script> 
(function(d, s, id) { 
     var js, fjs = d.getElementsByTagName(s)[0]; 
     if (d.getElementById(id)) return; 
     js = d.createElement(s); js.id = id; 
     js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0"; 
     fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 
</script> 
<div id="fb-root"></div> 
<div class="fb-share-button" data-href="<?php echo "dynamically_generated_link_with_querstring";?>" data-layout="icon"></div> 
관련 문제