即使用户事件触发,Facebook权限弹出也会被阻止.为什么?

Eri*_*ric 6 javascript facebook popup facebook-javascript-sdk

这是页面: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>
Run Code Online (Sandbox Code Playgroud)

facebook.do_post函数将进行FB.api调用.见http://textbookcentral.com.au/site_media/static/central/js/facebook.js

Tre*_*vor 5

是的,他们在他们的文档中指明了这一点.

http://developers.facebook.com/docs/reference/javascript/FB.login/

调用FB.login会导致JS SDK尝试打开弹出窗口.因此,只应在用户单击事件后调用此方法,否则大多数浏览器都会阻止弹出窗口.

  • 他的观点是,即使用户点击它触发它,它仍然是bocked.我的代码遇到了同样的问题. (6认同)