以下是页面:http://textbookcentral.com.au/26/university-of-new-south-wales/buy/69897/acct1501/?query=
当“告诉别人我在facebook墙上买一本教科书”时。选中复选框并单击“请求此教科书”,无论表单输入数据是否有效,它都会尝试在您的Facebook墙上发布墙贴,根据需要打开登录对话框或权限对话框。
但是,如果您的浏览器阻止弹出窗口,则不会显示该对话框。我在Safari和Firefox中测试了这个。
只有当您单击“请求此教科书”按钮时才会触发javascript,但弹出窗口仍然被阻止,为什么?
(查看来源,向下滚动,您还会看到以下相关代码。)
<a href="#" class="submit button" onclick="make_facebook_request_post()">Request this textbook</a></p>
</div>
</form>
</div>
<script type="text/javascript">
function make_facebook_request_post() {
if ($('#id_facebook').is(':checked')) {
facebook.do_post(function(success) {},
'I am using http://textbookcentral.com.au to buy a textbook for ACCT1501.', 'publish_stream')
}
}
</script>
facebook.do_post函数将进行FB.api调用。 见http://textbookcentral.com.au/site_media/static/central/js/facebook.js
答案 0 :(得分:5)
是的,他们在文档中指明了这一点。
http://developers.facebook.com/docs/reference/javascript/FB.login/
调用FB.login会导致JS SDK尝试打开弹出窗口 窗口。因此,只应在用户单击后调用此方法 事件,否则大多数浏览器都会阻止弹出窗口。