在JSFiddle中加载Facebook API

Loading the Facebook API in JSFiddle

本文关键字:Facebook API 加载 JSFiddle      更新时间:2023-09-26

我希望能够在JSFiddle中加载Facebook API。这是我目前的尝试。

当我运行时:

window.fbAsyncInit = function() {
  FB.init({
    appId: 'event-test',
    xfbml: true,
    version: 'v2.5'
  });
};

我得到以下错误:

未捕获的SecurityError:未能设置"Document"的"domain"属性:沙盒iframe禁止赋值。(匿名函数)@xd_arbiter.php?版本=42:1

有什么办法可以让它发挥作用吗?

我对Facebook登录API不太了解。但是,我确实理解您收到错误消息的原因。

如果你在没有jsfiddle的情况下将代码放在电脑硬盘上的文件中,它应该可以工作。

简短的回答:在jsfiddle上的当前设置中,没有办法实现这一点。如果Facebook有一个不同的API可以做同样的事情,你可以尝试寻找一个替代的Facebook API。

长话短说:Sandbox是为父页面的安全措施分配给iframe标记的属性。JsFiddle使用沙盒为父页面提供安全性。你的fiddle结果被加载到一个iframe中,看起来像这样:

<iframe name="result" sandbox="allow-forms allow-popups allow-scripts allow-same-origin allow-modals" frameborder="0" src="//fiddle.jshell.net/casebash/j26bq6qf/11/show/"></iframe>

Facebook只是不希望他们的API在沙盒iframe中运行。