FB.init期间的QUOTA_EXCEEDED_ERR

时间:2011-12-09 03:54:43

标签: facebook local-storage facebook-javascript-sdk

使用Facebook javascript SDK创建移动网络应用程序时,我有一个iphone(4,ios5)在FB.init期间收到QUOTA_EXCEEDED_ERR。我的FB.init看起来像:

var channel = '//'+(window.location.hostname+((~[80,443].indexOf(window.location.port))?'':(':'+window.location.port))+'/channel.html');
var APP_ID = 'MYAPPIDXXX';
alert('before FB.init');
FB.init({
  appId: APP_ID,
  channelUrl: channel,
  status: true, 
  cookie: true,
  xfbml: true,
  oauth: true
});
alert('after FB.init');

此错误似乎与localStorage有关,但是在清除手机缓存后仍会出现错误。

我可以使用仅具有fb-root元素和' // connect.facebook.net/en_US/all.js'的html页面重现(仅在那一部手机上);脚本后跟上面的脚本。我正在使用html5 doctype并在html标记中包含facebook命名空间。它永远不会达到第二个警报。我的频道文件存在并正在正确投放。

有关为何发生这种情况的任何想法?

由于

1 个答案:

答案 0 :(得分:1)

在这里找到答案: http://frederictorres.blogspot.com/2011/11/quotaexceedederr-with-safari-mobile.html

原来,有问题的iphone在Safari设置中启用了“私密浏览”功能。您可以通过尝试将空字符串设置为本地存储并检查QUOTA_EXCEEDED_ERR来检测私人浏览,如下所示: http://m.cg/post/13095478393/detect-private-browsing-mode-in-mobile-safari-on-ios5