Javascript Mobile safari私有浏览本地存储错误,但没有代码调用它
我正在制作一个通过AdobeCQ5Now AEM托管的页面 呈现的页面是一个.JSP文件,上面还有Java、HTML和Javascript代码 我正在渲染一系列徽标,它们在所有浏览器上都显示得非常好,除了在私人浏览中的mobile safari。这给我带来了控制台中的错误:Javascript Mobile safari私有浏览本地存储错误,但没有代码调用它,javascript,json,local-storage,mobile-safari,aem,Javascript,Json,Local Storage,Mobile Safari,Aem,我正在制作一个通过AdobeCQ5Now AEM托管的页面 呈现的页面是一个.JSP文件,上面还有Java、HTML和Javascript代码 我正在渲染一系列徽标,它们在所有浏览器上都显示得非常好,除了在私人浏览中的mobile safari。这给我带来了控制台中的错误: QuotaExceededError: Dom exception 22: An attempt was made to add something to storage that exceeded the quota
QuotaExceededError: Dom exception 22: An attempt was made to add something to storage that exceeded the quota
研究发现,在iOS7中的私人浏览中,本地存储已关闭
但是,我的代码都没有调用本地存储。我想弄清楚本地存储是否是罪魁祸首
我有一些Java代码,用于汇编品牌列表的StringBuffer
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变量中:
<script id="data" type="application/json"><%=brandJsonObject.toString() %></script>
var brandJSON = JSON.parse($("#data").html());
然后在一个单独的JS函数中,我遍历JSON对象并显示html,我使用元素及其数据属性:
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 mobile safari私有浏览的问题?我没有明确地在任何地方调用localStorage,但我不确定。非常感谢您的建议。您收到了错误,因为CQ在其ClientLib中使用localstorage,它构建了一个shared.js文件。 在这里,您可以从Adobe找到修补程序: 2014年6月10日NPR-4107在Safari上的私人浏览超出了配额