首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mobile-safari私有浏览本地存储错误,但没有代码调用它

Mobile-safari私有浏览本地存储错误,但没有代码调用它
EN

Stack Overflow用户
提问于 2014-07-11 03:34:44
回答 1查看 293关注 0票数 0

我正在处理一个通过Adobe CQ5 (现在的AEM)托管的页面。

呈现的页面是一个.JSP文件,其中也包含Java、HTML和Javascript代码。

我正在渲染一系列徽标,它们在所有浏览器上都显示得很好,除了私人浏览中的移动端safari。这在控制台中产生了以下错误:

代码语言:javascript
复制
 QuotaExceededError: Dom exception 22: An attempt was made to add something to storage that exceeded the quota

研究一下,它似乎在iOS7本地存储中的私人浏览是关闭的。

然而,我的代码都没有调用本地存储。我想知道本地存储是否是罪魁祸首。

我有一些用于组装品牌列表的StringBuffer的Java代码。

代码语言:javascript
复制
 String cssClassPrefix = "svg-icon-";
 String cssClass = "";
 StringBuffer brandJsonObject = new StringBuffer();
 String externalPrefix = "";

 if(currentNode.hasProperty("brands")){

   Property prop = currentNode.getProperty("brands");

   if(prop.isMultiple()){
      Value[] brandArray = prop.getValues();
      for(Value brand : brandArray) {
            if(brandJsonObject.length() != 0){
            brandJsonObject.append(", ");
        }
        cssClass = cssClassPrefix + brand.getString().toLowerCase();
        brandJsonObject.append("{\"name\" : \""+brand.getString().toLowerCase()+"\", \"cssName\" : \""+cssClass+"\"}");
    }
}

然后,我将该字符串解析为JSON,并将其放入JS变量:

代码语言:javascript
复制
<script id="data" type="application/json"><%=brandJsonObject.toString() %></script>
var brandJSON = JSON.parse($("#data").html());

然后在一个单独的JS函数中,我遍历JSON对象并显示html,我使用元素和它的data属性:

代码语言:javascript
复制
function arrangeBrands () {

      // make all the json data into one long html string and put inside wraper via append()
var brand = rowElement;
$.each(brandJSON, function(i,n){
          brand += '<div class="span2' /* + (bootstrapSpan) */ +' brandItem brandItemStatic"><object data="/etc/designs/searshomeservices/clientlib_base/images/svg-company-logos/'+n["name"]+'.svg" class="'+ n["cssName"]+' many"><img src="/etc/designs/searshomeservices/clientlib_base/images/svg-company-logos/'+n["name"]+'.png" alt="'+ n["name"] +'" /></object></div>';
}); 

我的问题是,这一切是否利用了本地存储,从而给我带来了我所看到的iOS7移动safari私人浏览的问题?我没有显式地调用localStorage anywhere,但我不确定。任何建议都很感谢。

EN

回答 1

Stack Overflow用户

发布于 2014-12-10 23:21:00

你得到这个错误是因为CQ在他们的客户端库中使用本地存储,它构建了一个shared.js文件。您可以在此处找到Adobe提供的修补程序:

http://helpx.adobe.com/experience-manager/kb/cq561-available-hotfixes.html

2014年6月10日NPR-4107在Safari上的私人浏览产生QUOTA_EXCEEDED_ERR

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24684843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档