Оставив ответ, потому что я пока не могу оставлять комментарии ...
Хороший CSS-хак Оли выглядел так, как будто изначально работал:
.fb-like span, .fb-like iframe { height:25px!important; width:150px!important}
но оно обрезало окно комментария, которое пыталось всплыть, когда мы фактически нажимали кнопку «Нравится».
Похоже, что решение для отложенного синтаксического анализа Пера делает эту работу; вот немного подробнее. В нашем случае в выпадающем меню была кнопка «Мне нравится», которая выглядела так:
<ul>
<li class="control_menu">
<span>menu name</span>
<ul style="display: none;">
<li><div class="fb-like-inactive" data-href=...></li>
...
</ul>
</li>
...
</ul>
с кодом, который показывает раскрывающийся список ul
, когда пользователь наводит курсор на элемент control_menu
. Мы использовали этот код для обработки отложенного анализа:
$(document).ready(function() {
$('.fb-like-inactive').closest('.control_menu').hover(function() {
var inactive = $(this).find('.fb-like-inactive');
if (inactive.length && (typeof FB != 'undefined')) {
inactive.removeClass('fb-like-inactive').addClass('fb-like');
FB.XFBML.parse(this);
}
});
});
Он находит кнопки fb-like-inactive
, затем ищет дерево, чтобы найти содержащие элементы control_menu
, затем присоединяет событие к элементам control_menu
, чтобы определить, когда пользователь наводит на них курсор мыши. Когда он обнаруживает всплывающее окно для определенного элемента меню, он ищет неактивные подобные кнопки в этом элементе, помечает их как обычные fb-like
, а затем анализирует только содержимое этого элемента.
Надеюсь, это сэкономит кому-то время.