Как скрыть iframe с помощью кнопки FB Like на клике? - PullRequest
2 голосов
/ 22 февраля 2011

Я использую этот код (стандартный FB Like):

<div id="like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage%2Fto%2Flike&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe></div>

Мне нужно скрыть полный div (или iframe), когда пользователь нажимает на него.

Я попробовал событие onclick, но оно не сработало внутри iframe.

Как я могу это сделать?

Ответы [ 4 ]

0 голосов
/ 25 августа 2011

Вы также можете попробовать это решение:

FB.Event.subscribe('edge.create', function(href, widget) {
        your call back function to hide the iframe
});
0 голосов
/ 22 февраля 2011

Я еще этого не сделал. Только что нашел хороший ресурс http://softwareas.com/cross-domain-communication-with-iframes

может быть так

parent.frames[1].location.href -> set to own url plus #anyanchor

, чтобы он не был перезагружен, затем получите доступ к функции js главного окна

document.getElementById('facebookFrame').style.display = "none";
0 голосов
/ 25 августа 2011

Реально я думаю, что вам лучше всего поставить еще один , на этот раз прозрачный, div над iframe. Установите свой обработчик кликов на это.

0 голосов
/ 22 февраля 2011

Вы можете сделать что-то вроде этого:

HTML:

<div id="like"><iframe id="facebookFrame" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage%2Fto%2Flike&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe></div>

Javascript:

document.getElementById('facebookFrame').contentWindow.document.body.onclick = 
function() {
  // hide your iframe here or do whatever
  document.getElementById('facebookFrame').style.display = "none";
  alert("iframe was clicked");
}
...