facebook连接上的Intermitent SecurityError DOM Exception 18

时间:2016-04-11 23:44:53

标签: facebook safari facebook-javascript-sdk mobile-safari hello.js

错误为SecurityError: DOM Exception 18,它发生在replaceState @ https://connect.facebook.net/en_US/fbds.js第9行,位置2343

我们使用hello.js

进行facebook登录

似乎访问replaceState时出现问题,并且:

  • 仅在safari,桌面和移动设备(9.0和9.1)
  • 中发生
  • 发生几天,然后停止数周,然后回来

我无法重现它,我们有客户端错误报告,我看到这些错误爆发来来去去。

问题是,是否有人经历并解决了这个问题?

3 个答案:

答案 0 :(得分:1)

我们在过去的几天里一直在使用JQuery mobile中的replaceState。

https://forums.developer.apple.com/thread/36650

<强>摘要

一个简单的复制案例,它在Safari控制台中提供了dom异常18:

for (var i=0 ; i<=100; i++) { window.history.replaceState(null, null, "http:/www.apple.com/"); }

Apple的回应:

  

此问题的行为基于以下内容:这是通过   设计。我们在iOS中修复了一个滥用的安全漏洞   pushState的/ replaceState。

解决

对我们来说,解决方案只是从JQuery移动框架中删除违规行:

window.history.replaceState( state, state.title || document.title, href );

我很欣赏这可能对您的案件没有帮助,但至少它可能有助于解释您所看到的行为。

答案 1 :(得分:0)

尚未知道解决方案(除了更新)。

WebKit错误跟踪器:

PouchDB GH问题:

答案 2 :(得分:0)

Safari设置为阻止cookie(和其他存储)。

设置&gt; Safari&gt;阻止Cookie&gt; '永远允许'

另请参阅:https://apple.stackexchange.com/questions/125584/broken-safari-dom-exception-18