我的应用程序中有以下代码:
openDatabase('main', '1.0', 'Database display name', 50 * 1024 * 1024)
在苹果公司推出Safari 7之前一切正常。现在它失败了,但有以下例外:
SecurityError:DOM异常18:尝试突破 用户代理的安全策略。
有人知道如何解决它吗?
答案 0 :(得分:5)
我找到了答案。希望它对其他人有用:
http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review
WebSQL错误 •使用WebSQL API时会出现大问题(DOMException) 试图创建一个大于5Mb的数据库。在以前的版本中, 在用户的许可下,限制为50Mb。因为一个错误,当你尝试 要存储超过5Mb的用户将获得权限对话框 仅限5Mb。即使用户授予你许可,因为它是 只有5Mb,你会得到一个例外,试图获得更多。这是一个很大的问题 BUG。
更新19/9:根据纽约时报的tarobomb,如果你要求的话 当您第一次创建数据库然后尝试时,小于5Mb 存储更多数据(最多50Mb)正确的确认对话框 出现(前10Mb,然后是25Mb,最后是50Mb),最后你会出现 能够存储超过5Mb。
答案 1 :(得分:0)
我把它搞定了。当你进入safari时,键盘左上方的一个小按钮显示“私有”,点击它以禁用它。数据库工作正常,但有marat提到的限制。但是(对于jQuery移动用户)! jquery mobile将无法使用后退按钮。为此,您必须从代码中删除appcache。 jquerymobile 1.4将解决这个问题,但是现在你必须没有appcache!