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