Я использую этот код (стандартный FB Like):
<div id="like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage%2Fto%2Flike&layout=standard&show_faces=true&width=450&action=like&colorscheme=light&height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe></div>
Мне нужно скрыть полный div (или iframe), когда пользователь нажимает на него.
div
iframe
Я попробовал событие onclick, но оно не сработало внутри iframe.
onclick
Как я могу это сделать?
Вы также можете попробовать это решение:
FB.Event.subscribe('edge.create', function(href, widget) { your call back function to hide the iframe });
Я еще этого не сделал. Только что нашел хороший ресурс 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";
Реально я думаю, что вам лучше всего поставить еще один , на этот раз прозрачный, div над iframe. Установите свой обработчик кликов на это.
Вы можете сделать что-то вроде этого:
HTML:
<div id="like"><iframe id="facebookFrame" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fexample.com%2Fpage%2Fto%2Flike&layout=standard&show_faces=true&width=450&action=like&colorscheme=light&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"); }