Non, vous ne pouvez pas synchroniser directement les données entre les onglets de différents domaines à l'aide des événements et des mécanismes de stockage intégrés au navigateur, tels que localStorage ou sessionStorage. L'événement « storage » et les API de stockage du navigateur sont limités à la politique de même origine, ce qui signifie qu'ils ne fonctionnent qu'au sein du même domaine.
Les principales limites sont :
1. Politique de même origine : L'événement "storage" et les API de stockage du navigateur (localStorage, sessionStorage) sont soumis à la politique de même origine. Cela signifie que l'événement n'est déclenché que dans d'autres onglets/fenêtres appartenant au même domaine, et non dans des domaines différents.
2. Communication inter-domaines : il n'existe aucun mécanisme de navigateur intégré pour communiquer directement les modifications de données entre les onglets ou les fenêtres de différents domaines. La politique de même origine empêche ce type de communication entre domaines pour des raisons de sécurité.
Si vous devez synchroniser des données entre des onglets ou des fenêtres sur différents domaines, vous devrez utiliser une solution côté serveur ou un service tiers pouvant servir d'intermédiaire. Certaines options incluent :
1. Synchronisation côté serveur : vous pouvez utiliser un mécanisme côté serveur, comme une connexion socket Web ou une base de données partagée, pour propager les modifications de données entre les différents domaines.
2. Service de messagerie tiers : vous pouvez utiliser un service de messagerie tiers, comme Firebase, pour publier et vous abonner aux modifications de données dans différents domaines.
3. Communication inter-domaines personnalisée : vous pouvez implémenter un mécanisme de communication inter-domaines personnalisé, par exemple en utilisant l'API postMessage HTML5 en combinaison avec une iframe ou une fenêtre intermédiaire.
Cependant, ces solutions sont plus complexes et nécessitent une infrastructure supplémentaire ou des services tiers. Le stockage et les événements intégrés du navigateur sont limités aux communications de même origine uniquement.
En résumé, vous ne pouvez pas synchroniser directement les données entre les onglets de différents domaines à l'aide du stockage et des événements intégrés du navigateur. Vous devrez utiliser une solution côté serveur ou tierce pour réaliser la synchronisation des données entre domaines.
Citations :[1] https://www.reddit.com/r/AZURE/comments/194hsdu/sync_files_with_customer_on_another_domain/
[2] https://www.sqlservercentral.com/forums/topic/set-up-database-sync-between-2-différent-domain-servers
[3] https://torsten-muller.dev/javascript/communication-between-browser-tabs-synchronizing-state/
[4] https://nabeelvalley.co.za/blog/2024/07-03/localstorage-based-sync/
[5] https://community.cisco.com/t5/managing-users/user-identities-with-ad-sync-and-multiple-domains/td-p/4880178