2011-09-22 2 views
4

회사 페이지 내에 앱을 만들어서 더 많은 탭/페이지를 추가하여 "앞으로"페이지를 좋아하기를 바랍니다. 사용자가 우리의 페이지 "index2.php"를 좋아한다면 "index.php"라고 말하면서 비슷한 게이트가 나타납니다. 그들은 "index1.php"가 대신 포함되는 "index1.php"를 좋아하지 않습니다. 이 모든 기능이 올바르게 작동합니다.페이스 북 다음에 새로 고침 창이 생깁니다.

제 문제는 "index1.php"안에 "like"버튼을 넣고 싶습니다. 나는 사용자가 우리를 좋아할 수있게 해주는 버튼을 포함 시켰지 만,이 버튼을 클릭 한 후 새로 고침을해야 사용자가 같은 게이트에서 다시 평가되고 이에 따라 리디렉션 될 수 있습니다.

아래의 코드는 사용자가 좋아할 수 있지만 원하는대로 리디렉션하지 않습니다. fb 개발자 페이지의 예제를 살펴 보았지만 fb app dev에 익숙하지 않으며 내 오류를 파악할 수 없습니다. 어떤 도움이라도 인정 될 것입니다, 바라건대 이것은 충분한 정보입니다. 그러나 더 많은 정보가 필요하시면 답장하십시오. 제공 할 수있는 도움에 감사드립니다.

<div id="fb-root"></div> 
<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/all.js#xfbml=1"; 
    fjs.parentNode.insertBefore(js, fjs); 
    FB.Event.subscribe('edge.create', 
    function() { 
     top.window.location = 'http://www.facebook.com/pages/TAG_Communications/122751567742494?sk=app_243094502403141'; 
     } 
    ); 
}(document, 'script', 'facebook-jssdk'));</script> 
<div class="fb-like" data-href="http://www.facebook.com/pages/TAG_Communications/122751567742494" data-send="false" data-layout="button_count" data-width="450" data-show-faces="false"></div> 
+0

는 "샤"버튼을 수 있습니까? 스크립트에서 무엇을 변경해야합니까? –

답변

8

와우, 나는 똑같은 일을하려고하고 있으며 동시에이 질문을 게시했습니다. 그다지 많지는 않습니다.

버튼이 매우 명확하게 클릭 된 후 콜백 스크립트를 실행하기 위해 수행 할 작업을 설명하는 http://www.techjam.gr/2011/web-design/execute-javascript-facebook-button-clicked/이 나타났습니다. 나는 당신이 이미 대부분이 일을하고있는 것을 보았을 것입니다, 그러나 어쩌면 당신이 빠져 있거나 명시하지 않은 몇 가지 설명이있을 것입니다.

또한 크로스 도메인 자바 스크립트 액세스 보안 오류가 발생하기 때문에 상위 프레임을 리디렉션하려고 할 때 많은 문제가 발생합니다. 그것이 당신 문제의 일부인지 확실하지 않습니다. 내 경우에는 no-fan.php와 같은 iframe 페이지를 클릭 할 때 fan.php로 리디렉션 할 계획입니다. 팬이거나 팬택 코드인지 다시 평가할 필요가 없습니다. 같은 버튼을 클릭하십시오.

희망은 당신을 도와줍니다.

UPDATE :

은 위의 링크에서 도움과 협력있어! 다음은 내가 한 일입니다 (아래 코드) : 일반 FB.init 코드를 사용하십시오. 버튼 위에 리디렉션 코드가 포함 된 콜백 스크립트를 추가하십시오. 같은 버튼의 xfbml 버전을 추가하십시오. 그게 전부 야!

실제로 top.window.location을 사용하고 팬게이트 평가 코드로 보냈습니다. 그 이유는 프레임을 리다이렉트하면 페이지의 나머지 부분을 그대로 남겨두고 제목 옆에 버튼과 같은 페이스북이 남아 있기 때문입니다. 전체 페이지를 새로 고치면 모든 것이 올바른 방식으로 보이고 혼란을 피할 수 있습니다.

코드 :

  <div id="fb-root"></div> 
      <script src="http://connect.facebook.net/en_US/all.js"></script> 
      <script> 
       FB.init({ 
        appId :'your id here', 
        status : true, // check login status 
        cookie : true, // enable cookies to allow the server to access the session 
        xfbml : true, // parse XFBML 
        channelUrl : 'full path to file', // channel.html file 
        oauth : true // enable OAuth 2.0 
       }); 
      </script> 


     <script> 
      FB.Event.subscribe('edge.create', function(href, widget) { 
       top.window.location = 'your tab url'; 
      }); 
     </script> 

     <div id="fb-root"></div> 
     <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/all.js#xfbml=1"; 
      fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk'));</script> 

     <div class="fb-like"><fb:like href="your page you want to like" send="false" layout="button_count" width="200" show_faces="false"></fb:like></div> 
+0

답장을 보내 주셔서 감사합니다. 나는이 사이트를보고 내 문제를 잘 이해할 것이다. 당신은 틀림없이, iframe에서 리다이렉트 만 재평가 할 필요가 없습니다. – Thomas

+0

나는 방금 일하고있어! 원래 게시물을 업데이트하고 있습니다. – Jeff

+0

BEAUTIFUL 멋진 작품! 이게 정말 완벽 했어 고마워! – Thomas

관련 문제