1

У меня есть окно с Facebook, которое появляется, когда функция вызывается onClick из общей папки Facebook.Как заблокировать доступ к моему файлу Facebook через блокировку всплывающих окон?

Проблема заключается в том, что окно Facebook пытается появиться, но блокируется всплывающим блокировщиком.

Это мой первый раз, когда вы создаете окно совместного доступа. Есть ли простое решение обойти блокировщик всплывающих окон?

Вот кнопка, которая вызывает функцию:

<button class="share-now" onclick="fb_callout();"> 

А вот функция, которая называется:

<script> 
function fb_callout() { 
    (function(d){ 
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
     if (d.getElementById(id)) {return;} 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     ref.parentNode.insertBefore(js, ref); 
     }(document)); 
    } 
    window.fbAsyncInit = function() { 
    // init the FB JS SDK 
    FB.init({ 
     appId  : '162280254223002', // App ID from the App Dashboard 
     xfbml : true, 
     version : 'v2.5', 
     status  : true 
    }); 

    // Additional initialization code such as adding Event Listeners goes here 
    FB.ui(
     { 
     method: 'feed', 
     href: 'http://www.example.com', 
     name: 'Example', 
     link: 'http://www.example.com', 
     picture: 'http://image.png', 
     caption: 'Caption', 
     description: 'words go here' 
     }, 
     function(response) { 
     if (response && response.post_id) { 
      alert('Post was published.'); 
     } else { 
      alert('Post was not published.'); 
     } 
     } 
    ); 
    }; 
    </script> 

ответ

3

Прямо сейчас вы пытаетесь открыть всплывающее окно не на взаимодействие с пользователем, но в асинхронной функции обратного вызова. Конечно, блокировщик всплывающих окон обнаруживает это и блокирует всплывающее окно (по уважительной причине). Вам необходимо сделать две вещи:

  • Загрузите JS SDK при загрузке страницы, а не при взаимодействии с пользователем.
  • Звоните FB.ui непосредственно на взаимодействие пользователя. Это должно быть единственное в функции fb_callout.
+0

Спасибо за ваш ответ! Я внесла эти изменения, но теперь не появляется окно onClick ... Любые мысли о том, почему это может быть так? –

+0

Вы проверили консоль браузера на наличие ошибок или предупреждений? – luschn

+0

В консоли написано: Uncaught ReferenceError: FB не определен –