Facebook权限弹窗即使由用户事件触发也被阻止了。为什么?

6
这是页面链接: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


4
好的,我明白了。我不能把登陆调用包含在init调用中。我必须提前初始化Facebook SDK。否则,登录调用不是由用户事件触发,而是由传入的异步响应触发。 - Eric
1个回答

5

6
他的观点是即使是由用户点击触发,它仍然被阻止了。我在我的代码中也遇到了同样的问题。 - Kevin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接