2013-10-04 15 views
5

Ho il seguente codice HTML che tenta di impostare una chiave nella memoria locale.Dom eccezione 18 in javascript/html5 quando si tenta di accedere all'archivio locale

<!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> 

Su un singolo iPhone5 ciò provoca la seguente eccezione.

Test FAIL
SecurityError: DOM Exception 18

Altri iPhone testati (altri tre) con la stessa versione di iOs (7.0.2) funziona.

Ho provato la pagina sopra sia da https://x.y.domain.tld sia da http://x.domain.tld con la stessa eccezione.

Altre domande relative a "DOM Exception 18" sembrano essere relative alle impostazioni di sicurezza, ad es. test su localhost ma collegamento in contenuti remoti tramite https. Ma questa è una semplice pagina html che tenta semplicemente di accedere all'archivio locale.

risposta

1

Il problema è stato risolto. È stato rivelato che il client (il telefono errante era un telefono client) utilizza una piattaforma di sicurezza aziendale installata sui propri iPhone. Quella piattaforma ha un browser web separato che deve essere usato per abilitare ogni funzione Javascript. L'utente finale con il telefono non lo sapeva, quindi ha usato Safari che in qualche modo è danneggiato quando questa piattaforma è attiva. Quindi la soluzione era usare l'applicazione giusta per la navigazione.

La piattaforma è stata http://www.mobileiron.com/ e il browser sicuro è chiamato [email protected]

1

Ho letto da qualche parte che se i cookie sono bloccati, si verifica l'errore DOM Exception 18 quando si imposta localStorage. Sono stato in grado di riprodurre l'errore (non so se ho riprodotto il problema, di per sé) su un simulatore iPhone 5 (con iOS7) andando su Impostazioni, poi su Safari, "Blocca cookie" sempre. Non so se è così che il tuo iPhone 5 è configurato ...

+0

Vedere la mia risposta, il problema è stato risolto. Ma abbiamo provato a cambiare tutte le impostazioni (fortunatamente non così tante) in Safari, provando ogni combinazione. Avrei dovuto aggiungerlo alla mia domanda. – mnsc

-1

Ho visto che non è possibile modificare i dati nella memoria locale entro i primi due secondi. Imposta un timer per 5000 millisecondi, quindi esegui la funzione setItem per vedere cosa succede.

+0

Espandi la tua risposta, questo vale solo un commento. – Max

+0

Reputazione non superiore a 50. Non posso commentare le risposte –

+0

Vedi la mia risposta il problema è stato risolto. Ma fin dall'inizio era chiaro che questo non era il problema dato che uno dei primi test era una pagina che accede alla pagina locale con un clic del pulsante, con lo stesso risultato ogni volta che si faceva clic sul pulsante, avrebbe dovuto aggiungerla alla domanda. – mnsc

Problemi correlati