Javascript 如果使用Firefox和Edge在iframe中调用,Facebook JS-SDK将无法正常工作

Javascript 如果使用Firefox和Edge在iframe中调用,Facebook JS-SDK将无法正常工作,javascript,facebook,iframe,facebook-javascript-sdk,Javascript,Facebook,Iframe,Facebook Javascript Sdk,如果我们使用FacebookJSSDK登录并从iframe调用它,那么它在Firefox和Chrome中不起作用。我是说如果facebook和button的脚本在iframe中 首先,通过debug.js,我们可以看到Facebook对Firefox和Chrome的响应是不同的 在Firefox和Edge中,我们得到了在“画布”中设置的“注册”标志,我猜这是错的。答复示例: 收到消息\u FB\u f132xxxxxxae6logged\u in=true®istered=canvas&x

如果我们使用FacebookJSSDK登录并从iframe调用它,那么它在Firefox和Chrome中不起作用。我是说如果facebook和button的脚本在iframe中

首先,通过debug.js,我们可以看到Facebook对Firefox和Chrome的响应是不同的

在Firefox和Edge中,我们得到了在“画布”中设置的“注册”标志,我猜这是错的。答复示例: 收到消息\u FB\u f132xxxxxxae6logged\u in=true®istered=canvas&xd\u action=proxy\u ready from

在点击“使用Facebook登录”后,Firefox或Edge中没有弹出窗口或打开新的iframe,我认为这是因为“canvas”标志

有趣的是,如果我们在浏览器中更改用户代理,一切都正常工作

当然,如果在Firefox中,我们将登录按钮移到大型机上,一切正常

我无法提供我的网站,因为IP阻塞,但例如,如果您尝试登录Facebook,TripAdvisor也会遇到同样的问题。因为它们在iframe中有一个按钮


我将感谢您的任何猜测和帮助

我们讨论的iframe是否包含从不同于父页面的域加载的内容?浏览器对第三方cookie的默认阻止越来越严格,很容易想象这会在这里造成干扰。@04FS不,域是相同的。我还禁用了Firefox的所有内容安全策略,但仍然无法正常工作,嗯,不知道。如果更改UA使其工作,那么我猜SDK本身包含的代码可以区别对待不同的浏览器。你可以向Facebook提交一份bug报告,但不确定他们会给予多少优先权,这似乎是一个相当特殊的情况。为什么这必须在一个iframe中开始,你不能找到其他的处理方法吗?@04FS我必须在注册后等待24小时才能报告Facebook开发者的错误-这是一个多么好的系统:)是的,似乎有一些逻辑。iframe上有很多登录逻辑,我无法轻松更改它,因此我正在寻找简单的解决方案:)我们是在谈论iframe,它的内容是从不同于父页面的域加载的吗?浏览器对第三方cookie的默认阻止越来越严格,很容易想象这会在这里造成干扰。@04FS不,域是相同的。我还禁用了Firefox的所有内容安全策略,但仍然无法正常工作,嗯,不知道。如果更改UA使其工作,那么我猜SDK本身包含的代码可以区别对待不同的浏览器。你可以向Facebook提交一份bug报告,但不确定他们会给予多少优先权,这似乎是一个相当特殊的情况。为什么这必须在一个iframe中开始,你不能找到其他的处理方法吗?@04FS我必须在注册后等待24小时才能报告Facebook开发者的错误-这是一个多么好的系统:)是的,似乎有一些逻辑。iframe中有很多登录逻辑,我无法轻松更改它,因此我正在寻找简单的解决方案:)