После многих недель попыток найти решение, похоже, что необходим специальный URL-адрес канала, как упомянуто здесь:
http://developers.facebook.com/docs/reference/javascript/FB.init
Все, что я сделал, это создал channel.html файл, содержащий эту единственную строку:
<script src="http://connect.facebook.net/en_US/all.js"></script>
Затем я добавил строку channelUrl: так, чтобы конечный результат выглядел так:
<div id="fb-root"></div> <script>
window.fbAsyncInit = function() {
FB.init({
appId : 'MY APP ID',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelUrl : 'http://www.example.com/channel.html' // custom channel
}); };
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());</script>
Обязательно добавьте запятую после xfbml: true, если это была ваша последняя строка. Я не знаком с Javascript, поэтому я не знаю, пользуюсь ли я этим в полной мере, но я знаю, что это предотвращает проблему fb_xd_fragment и допускает комментарии FB в IE. Насколько я могу судить, это ЕДИНСТВЕННОЕ решение, доступное онлайн. Любые дальнейшие изменения приветствуются.