В правом верхнем углу он отображается на этой странице:
http://www.thegreekmerchant.com/product/fokofpolisiekar/band-logo
Но не на этом
http://www.thegreekmerchant.com/
Любая идея, почему? Я использую Drupal 6 с модулем FBConnect.
В правом верхнем углу он отображается на этой странице:
http://www.thegreekmerchant.com/product/fokofpolisiekar/band-logo
Но не на этом
http://www.thegreekmerchant.com/
Любая идея, почему? Я использую Drupal 6 с модулем FBConnect.
На самом деле проблема заключается в том, что страницы используют разные сценарии для загрузки модуля FBConnect.
Вкл http://www.thegreekmerchant.com/
:
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId : '146943825373452',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true,
logging: '0'
});
jQuery(document).trigger('fb:init');
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net//all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
В http://www.thegreekmerchant.com/product/fokofpolisiekar/band-logo
есть два сценария: предыдущий и следующий:
<div id="fb-root"></div><script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId: "146943825373452",
status: true,
cookie: true,
xfbml: true
});
FB.Event.subscribe("edge.create", function(href, widget) {
_gaq.push(["_trackEvent", "Facebook like", "Drupal", href]);
});
};
(function() {
var e = document.createElement('script');
e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
Я заменил первый script на второй, а http://www.thegreekmerchant.com/
теперь работает (конечно, не острая версия, а на моем сервере песочницы). Вам понадобится только второй script на http://www.thegreekmerchant.com/product/fokofpolisiekar/band-logo
.
На рабочей странице у вас есть эта разметка:
<div id="fbconnect_button-wrapper" class="form-item">
<fb:login-button v="2" background="dark" onlogin="facebook_onlogin_ready();" size="small">
<a class="fb_button fb_button_small">
<span class="fb_button_text">Facebook Connect</span>
</a>
</fb:login-button>
<div class="description">Sign in using Facebook</div>
</div>
В то время как для нерабочего у вас есть это:
<div id="fbconnect_button-wrapper" class="form-item">
<fb:login-button v="2" background="dark" onlogin="facebook_onlogin_ready();" size="small">
Facebook Connect
</fb:login-button>
<div class="description">Sign in using Facebook</div>
</div>
Я предполагаю, что JavaScript, создающий разметку, не работает должным образом. Возможно, у вас есть другая ошибка JavaScript перед выполнением кнопки FB script. Используйте Firebug или аналогичный инструмент, чтобы найти это.
Без дополнительной информации вам нелегко помочь.
кнопки оба не работают для меня в хроме, а на firefox первая ссылка работает, а вторая не...
Дело в том, что домашняя страница в firefox отправляет загрузку процессора на 100%, и я вижу, что у вас есть множество javascripts на дому. Я бы попытался отключить другие javascripts и, в конечном счете, запустить проверку на источнике страницы, чтобы узнать, есть ли какие-либо сломанные материалы.
Вы ошибаетесь:
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net//all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
Строка:
e.src = document.location.protocol + '//connect.facebook.net//all.js';
должен быть чем-то вроде
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
Если вы просмотрите файл all.js, который будет загружен вашим браузером, вы увидите сообщение об ошибке.
Таким образом, скрипты FB не загружаются, и поэтому внутренняя часть вашего window.fbAsyncInit = function()
никогда не вызывается..