2013-12-15 3 views
0

내가 클릭처럼 감지하는이 코드를 사용하십시오자바 스크립트 : '처럼'감지

FB.Event.subscribe('edge.create', 
      function(response) { 

       //to do... 

      } 
); 

을하고 잘 작동, 그래서 내 문제 것입니다. 사용자가 좋아하는 버튼을 클릭하면 팝업 창이 열립니다. 팝업 창을 차단하지 않는 동기식 호출을 사용합니다.

$("#div1").click(function(e) { 
    e.preventDefault(); 

    $.ajax({ 
     url: "./ajax.php", 
     async: false, 
     data: "POST", 
     success: function() { 
     window.open("./ajax.php","_blank"); 

     } 
    }); 
    }); 

이 코드는 버튼, 사용자 정의 된 div, 사진 위대한 작품 ...하지만이 같은 개체에 대해 작동하지 않습니다, 내가 객체를 좋아하거나 사용자 정의 DIV에 객체처럼 추가 할 'ID'속성을 넣어 시도 사용자 정의/외부 div 클릭을 감지하지만 작동하지 않습니다.

FB.Event.subscribe과 같이 사용할 수 없습니다. 비동기 적으로 팝업 차단기가 팝업되기 때문에 사용할 수 없습니다. 그래서 클릭과 같은 다른 방법이 필요합니다.

+0

버튼이 다른 도메인의 iframe에 있기 때문에 facebook에서 제공하는 이벤트에 연결하지 않으면 가능하지 않습니다. – adeneo

+0

다른 도메인의 iframe과 같은 버튼이 아닙니까? 그렇다면 FB API가 액세스 권한을 제공하지 않는 한 iframe에서 이벤트를 직접 차단할 수 없습니다. – jfriend00

답변

1

이것은 iFrames 및 타사 콘텐츠의 일반적인 문제입니다.

우리가 할 수있는 한 가지 방법은 FB 요소 위에 투명 div를 배치하는 것입니다. 이 div의 클릭 핸들러가 실행되면 팝업 창이 열립니다. 그런 다음 동일한 핸들러에서 그 아래에있는 FB 요소를 클릭합니다. 바이올린을 올리면, 이것이 당신의 셋업으로 가능한지를 알 수 있습니다.

+0

두 번의 클릭 또는 한 번? – Aleksa

+0

@ Djomla1989 "두 번의 클릭 또는 한 번?" - 너의 선택. 첫 번째 클릭시 처리기 만 실행되고 두 번째 클릭시 페이스 북 버튼이 작동하도록 만들 수 있습니다. –

0

같은 버튼이 iFrame에 있으므로 이벤트 핸들러를 연결할 수 없습니다. 그러나 Facebook의 기능에 AJAX 호출을 추가 할 수 있습니다.

FB.Event.subscribe('edge.create', 
    function(response) { 
    $.ajax({ 
     url: "./ajax.php", 
     async: false, 
     data: "POST", 
     success: function() { 
     window.open("./ajax.php","_blank"); 
     } 
    }); 
    } 
); 
+0

비동기 호출이므로 팝업 차단기가 내 팝업 창을 차단합니다. – Aleksa