Я знаю, что этот вопрос задают часто, но я не нашел решения. Я использую этот код:
откройте html-тег с помощью
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#">
в индексе сразу после открытия тега я ввел это
<div id="fb-root"></div> <script> window.fbAsyncInit = function() { // init the FB JS SDK FB.init({ appId : 'MY_APP_ID', // App ID from the app dashboard status : true, // Check Facebook Login status xfbml : true // Look for social plugins on the page }); // Additional initialization code such as adding Event Listeners goes here }; // Load the SDK asynchronously (function(){ // If we've already installed the SDK, we're done if (document.getElementById('facebook-jssdk')) {return;} // Get the first script element, which we'll use to find the parent node var firstScriptElement = document.getElementsByTagName('script')[0]; // Create a new script element and set its id var facebookJS = document.createElement('script'); facebookJS.id = 'facebook-jssdk'; // Set the new script's source to the source of the Facebook JS SDK facebookJS.src = '//connect.facebook.net/it_IT/all.js'; // Insert the Facebook JS SDK into the DOM firstScriptElement.parentNode.insertBefore(facebookJS, firstScriptElement); }()); </script>
наконец, кнопка
<fb:like href="http://mydomain.it/" layout="button_count" action="like" show_faces="false" share="false"></fb:like> <script> FB.Event.subscribe('edge.create', function(href, widget) { alert('Ti piace ' + href); }); </script>
подобное работает, но не открывает предупреждение, и я получил эту ошибку в консоли.
Uncaught ReferenceError: FB is not defined
Любые решения?
См. Эту тему: FB не определен в Facebook Login .
Вы пытаетесь использовать FB
сразу после своей кнопки, и он еще не определен:
<fb:like href="http://mydomain.it/" layout="button_count" action="like" show_faces="false" share="false"></fb:like> <script> FB.Event.subscribe(... ^--- FB isn't defined yet!
Переместите этот код FB.Event.subscribe
внутри вашей функции window.fbAsyncInit
, где у вас есть этот комментарий «Дополнительный код инициализации»,
Другая причина, по которой вы получаете эту ошибку, – это то, что вы отсутствуете; после скобки определения fbAsyncInit.
window.fbAsyncInit = function() {
};