2013-10-04 85 views
5

我有以下html尝试在本地存储中设置一个密钥。在尝试访问本地存储时javascript/html5中的Dom异常18

<!DOCTYPE html> 
<html> 
<head> 
    <title>Test</title> 
    <script> 
    document.addEventListener('DOMContentLoaded', loaded, false); 
    function loaded(){ 
    try { 
     window.localStorage.setItem("Test", "SetItemValue"); 
     document.getElementById("test").innerHTML = "Test OK"; 
    } catch (err) { 
     document.getElementById("test").innerHTML = "Test FAIL<br>" + err.message; 
    } 
    } 
    </script> 
</head> 
<body> 
    <div id="test">Testing...</div> 
</body> 
</html> 

在单个iPhone5上,这会导致以下异常。

Test FAIL
SecurityError: DOM Exception 18

其他iPhones测试(其他三个)具有相同iOs版本(7.0.2)的作品。

我已经从https://x.y.domain.tldhttp://x.domain.tld测试了上述页面,但有相同的例外情况。

有关“DOM Exception 18”的其他问题似乎与安全设置有关,例如,在本地主机上测试,但通过https链接到远程内容。但这是一个简单的尝试访问本地存储的简单html页面。

回答

1

问题解决了。据透露,客户端(错误的手机是客户端电话)使用安装在他们iPhone上的全公司安全平台。该平台具有必须用于启用每个Javascript功能的单独Web浏览器。带手机的最终用户不知道这一点,所以他使用Safari,当这个平台处于活动状态时,它以某种方式被瘫痪。所以解决方案是使用正确的应用程序进行浏览。

该平台是http://www.mobileiron.com/和安全浏览器被称为[email protected]

1

我在某处读到,如果Cookie被阻止,设置localStorage时会出现DOM Exception 18错误。通过转到设置,然后对于Safari,“Block Cookies”始终可以在模拟器iPhone 5(w/iOS7)上重现错误(不确定是否我重现了问题本身)。不知道这是如何配置你的iPhone 5 ...

+0

见我的回答,问题解决了。但我们确实尝试在Safari中切换每个设置(幸好没有那么多),尝试每种组合。我应该在我的问题中加上这一点。 – mnsc

-1

我已经看到,你不能在第一个几秒钟内改变本地存储的数据。设置一个5000毫秒的计时器,然后运行setItem函数来查看会发生什么。

+0

展开你的答案,这只是值得评论。 – Max

+0

声望未超过50.不能评论答案 –

+0

看到我的回答问题解决了。但是从一开始就很明显,这不是问题,因为第一个测试中的一个测试是一个页面,通过单击按钮访问本地存储,只要按钮被点击,结果都一样,应该是这个问题的补充。 – mnsc

相关问题