J'ai essayé de suivre Les exemples sur le site de développeur de safari .
La documentation suggère d'ajouter un auditeur d'événement comme: P>
window.onload = function() { ... document.body.setAttribute("onstorage", "handleOnStorage();"); } function handleOnStorage() { if (window.event && window.event.key.indexOf("index::") == 0){ $("stats").innerHTML = ""; displayStats(); } }
3 Réponses :
Après avoir enquêté plus loin (et avec l'aide d'un ami) J'ai découvert que la méthode Storage_Handler s'appelle non pas lorsque la valeur d'une valeur locale change sur la page dans ma fenêtre ou onglet actuels, mais lorsqu'il change dans un autre onglet. p>
Par exemple, si j'ai les deux onglets ouverts et que vous avez des contrôles dans les pages dans chaque onglet pour modifier les paramètres localStorage, puis lorsque je touche la commande dans le premier onglet, la méthode Storage_Handler est appelée dans l'autre onglet. < / p>
Avez-vous trouvé une source fiable? Pourriez-vous nous fournir? Je ne pouvais pas en déduire que de la spécification w3.org/tr/webstorage/#ssessionStorageageEvvente a>. Mais dans tous les cas, j'ai du mal à interpréter, en particulier la section où elle mentionne un document "pleinement actif".
Pour Firefox, Chrome et IE 11, la méthode du gestionnaire de stockage appelée la même onglet ou la même fenêtre. Mais pour iPad Safari, il est appelé que l'onglet change d'onglet localStorage.
@ Leods92 Voici une documentation développeur.mozilla.org/ EN-US / DOCS / Web / API / web_storage_api / ...
Si vous souhaitez effectuer une action après l'enregistrement des objets enregistrés dans localStorage sur la même page, vous pouvez appeler manuellement la fonction après avoir appelé localstorage.settem code> et appelez la même fonction à partir du stockage
code> EventListener pour gérer plusieurs onglets. P>
Je me rends compte que cela se demande sur Safari mais, par le réseau de développeurs Mozilla, le StorageEvent n'est tiré que si l'objet de stockage Web est modifié de l'extérieur de la page, par exemple dans un autre onglet. P>
Faites défiler jusqu'à "Répondre aux modifications de stockage avec le stockageEvent". P>
(J'aurais ajouté cela comme un commentaire à la réponse acceptée, mais je n'ai pas le représentant pour cela.) p>
J'ai corrigé les liens dans votre question pour vous; Vous devriez pouvoir ajouter plus de liens bientôt, une fois que vous obtenez un peu plus de représentant. Malheureusement, je ne connais pas la réponse à votre question. J'espère que quelqu'un d'autre peut aider!
Une bonne démo avec son code de code est déjà disponible ici qui aide à comprendre le concept et comment cela fonctionne. HTML5DEMOS.COM/STORAGE-EVENT
Vous avez toujours ce lien qui pourrait vous aider également à comprendre la sessionStorage très bien nczonline.net/blog/2009/07/21/introduction-to-SessionStorage