我正在使用此代码(标准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
)。
我尝试了onclick
事件,但它在iframe
内无效。
我该怎么做?
答案 0 :(得分:0)
你可以这样做:
<强> 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");
}
答案 1 :(得分:0)
我还没有做到。刚刚找到了一个很好的资源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";
答案 2 :(得分:0)
实际上,我认为您最好的选择是将另一个放置在div
上,这一时间是透明的iframe
。在那上设置你的点击处理程序。
答案 3 :(得分:0)
您也可以尝试此解决方案:
FB.Event.subscribe('edge.create', function(href, widget) {
your call back function to hide the iframe
});