アイデア: いいねボタンを iFrame に配置し、いいねボタンを iFrame の右側に配置し、iFrame の幅と高さをフライアウトの幅と高さと同じかそれ以上にします。このようにして、ページがいいねボタンの右側で終了し、それに応じてフライアウトが左側に表示されることを Facebook に「伝える」ことができます。
注意: iFrame の下の要素では、クリック イベントを受け取ることができません。そのため、いいねボタンのマウスオーバーおよびマウスアウトイベントを使用して、iframe の z-index を操作する必要があります。つまり、この方法はモバイル デバイスでは機能しません。しかし、専用のモバイル サイト (タブレットもカバーしています) があるため、このソリューションが役立つ可能性があります。 更新:この問題の完全な解決策はまだありません。
実際の例(ボタンとアンカーの両方を試してください):
親.html
<!doctype html>
<html lang="en" xmlns:fb="http://ogp.me/ns/fb#">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
iframe {
z-index: -1;
}
.top-layer {
z-index: 1;
}
</style>
</head>
<body>
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div class="wrapper" style="position: relative; overflow: hidden; width: 600px; height: 800px; margin: 0 auto; z-index: 0; background-color: yellow;">
<a onclick='window.alert("click");' style="position: absolute; left: 200px; top: 100px;">click me</a>
<fb:like style="position: absolute; left: 360px;" href="http://www.allyou.com/static/weekly-circulars/" send="false" layout="button_count" width="140" show_faces="false" fb-xfbml-state="rendered" class="fb_edge_widget_with_comment fb_iframe_widget"></fb:like>
<iframe style="position: absolute; width: 600px; left: -160px; height: 600px; top: 50px;" src="child.html" frameborder="0"></iframe>
</div>
</body>
</html>
child.html
<!doctype html>
<html lang="en" xmlns:fb="http://ogp.me/ns/fb#">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
</head>
<body>
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<fb:like onmouseover="$(parent.document).find('iframe').addClass('top-layer');" onmouseout="$(parent.document).find('iframe').removeClass('top-layer');" style="position: absolute; right: 0;" href="http://www.allyou.com/static/weekly-circulars/" send="false" layout="button_count" width="140" show_faces="false" fb-xfbml-state="rendered" class="fb_edge_widget_with_comment fb_iframe_widget"></fb:like>
</body>
</html>