javascript - Facebook 在 Chrome 中给出 "Unsafe JavaScript attempt to access frame with URL"错误

标签 javascript facebook google-chrome

我的示例 Facebook 应用程序昨天在 Chrome 中运行良好。该页面通过 JavaScript SDK 集成了 Silverlight 广告 Facebook。我可以检查基本登录状态、登录 Facebook、获取您的姓名并注销。

今天,在我没有做任何更改的情况下,它在 Chrome 中被破坏了,出现了一个在 Google 搜索结果中很常见的 JavaScript 错误,但没有真正的答案。它在 IE 和 Firefox 中仍然运行良好。

这是公共(public)网址:

http://www.andrewdothay.net/prj/facebook/

当您在 Chrome 中打开 JavaScript 控制台时,它会抛出大量错误:


不安全的 JavaScript 尝试访问带有 URL 的框架

http://www.facebook.com/login.php?api_key=151352704876752&cancel_url=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23cb%3Df1175dd3f%26origin%3Dhttp%253A%252F%252Fwww.andrewdothay.net%252Ff304d89d8%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df3760623c%26result%3DxxRESULTTOKENxx&channel_url=http%3A%2F%2Fwww.andrewdothay.net%2Fprj%2Ffacebook%2F&display=popup&fbconnect=1&locale=en_US&method=auth.login&next=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23cb%3Df3c546942%26origin%3Dhttp%253A%252F%252Fwww.andrewdothay.net%252Ff304d89d8%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df3760623c%26result%3DxxRESULTTOKENxx&return_session=1&sdk=joey&session_version=3&v=1.0来自带有 URL 的框架 http://www.andrewdothay.net/prj/facebook/ .

域、协议(protocol)和端口必须匹配。


关于这里的 Chrome 有什么想法吗?


更新

我发现当我调用 FB.login() 时,今天机器上的 Chrome 会阻止登录弹出窗口,但我知道我昨天没有在 JavaScript 控制台中收到那些 190 条错误消息。

因此,当我在 Chrome 中允许弹出窗口时,它确实适用于最终用户,但所有这些新的错误消息正在扼杀我作为开发人员的诊断体验。

最佳答案

我找到了解决方案。如果您在没有用户操作的情况下执行 FB.login,webkit 会阻止弹出窗口。

例如,我在我的项目中使用了邀请系统。有输入/文本输入邀请码。我检查了邀请代码是否可用于 ajax/post 请求。如果可用,我运行 FB.login()。如您所料,浏览器阻止了弹出窗口,并且在 js 控制台出现了大量错误。

因此您必须在用户操作后运行 FB.login()。我将在 ajax/post 和 FB.login() 之间放置一个 facebook 登录按钮。用户将不得不单击它 - 这很糟糕 - 但他们不会看到任何问题。

顺便说一句,几天后问题再次出现。我认为这是关于浏览器的信任系统。当你开发它的时候,你访问了很多次,浏览器一开始认为它是可靠的。我不确定这部分,但我的解决方案有效。

关于javascript - Facebook 在 Chrome 中给出 "Unsafe JavaScript attempt to access frame with URL"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3577947/

相关文章:

javascript - jQuery 在悬停时更改图像,然后在单击时保持图像

javascript - 如何循环数组显示表格所有行的所有数据?

javascript - 将我的登录和签名页面显示为弹出窗口的 JavaScript 代码

javascript - 在回调中使用cursor.continue()

javascript - 我们如何在谷歌浏览器的每一页上打印表格标题

javascript - 记住从表中随机选择

php - 在 MySQL 和 PHP 中创建好友关系

Android Facebook SDK 3.2获取个人资料电子邮件信息显示为空

java - 获取 ID,Selenium 中当前关注的元素的类

javascript - "Pause On Caught Exceptions"过滤器