我们的网站弹出一个模态javascript/jquery对话框,该对话框要求用户关闭或在Facebook上“赞”才能继续。我们正在使用“Like”代码的HTML5版本。用户点击“Like”后关闭模态弹出框
“关闭”工作正常,但当用户点击“赞”时如何获得关闭对话框?
实际的“赞”按钮由Facebook在IFrame中提供,我还无法通过JavaScript获得它。
任何想法?
我们的网站弹出一个模态javascript/jquery对话框,该对话框要求用户关闭或在Facebook上“赞”才能继续。我们正在使用“Like”代码的HTML5版本。用户点击“Like”后关闭模态弹出框
“关闭”工作正常,但当用户点击“赞”时如何获得关闭对话框?
实际的“赞”按钮由Facebook在IFrame中提供,我还无法通过JavaScript获得它。
任何想法?
订阅edge.create
FB JS事件(http://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/),并在收到该消息后关闭弹出窗口。然而,你会遇到问题,因为在喜欢之后,Facebook还喜欢建立一个对话框,允许liker将链接发布到他们的墙上。因此,您可能会通过过早关闭对话框而意外隐藏该对话框。
首先检查下面的代码来实现:
<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_GB/all.js#xfbml=1&appId=261463080590982";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
然后,只需做到以下几点:
<script>
FB.Event.subscribe('edge.create', function(response) {
close_function()
});
</script>
凡close_funciton()是你常闭所说相同的功能。
有关此功能的更多信息:https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/
如果你更喜欢在同一个页面不同的“功能”按钮,这很有趣。
如果你不想显示它在所有 您可以使用下面
.fb_edge_widget_with_comment{
position: absolute;
}
.fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr {
display: none !important;
}
的CSS代码,希望它能帮助:)
在Facebook框架中找不到类。 – monteirobrena 2015-10-08 13:08:07
如果仔细观察,答案会在2012年发布,但很确定此解决方案不再适用。如果你能改变你的投票,会很乐意。这仍然是一个有效的答案,但从2012年开始。 – 2015-10-09 21:49:28
是的,我知道,但这不是一个确定的解决方案。我认为这里的人们想要最终的解决方案。没有人想要一段时间后停止的事情。 – monteirobrena 2015-10-09 22:38:26
谢谢,这帮助。 – ChrisNY 2012-02-07 00:35:01