Maison > Article > interface Web > Explication détaillée de l'événement de stockage de la méthode de communication inter-pages JavaScript
Lors de la rédaction d'une page, on rencontre parfois une telle exigence, qui nécessite le transfert de données ou un événement entre deux pages. À ce stade, vous devez utiliser l'événement de stockage dont je vais parler aujourd'hui. Avant d'apprendre cet événement, vous devez comprendre l'utilisation de localStorage. Pour une utilisation spécifique, veuillez consulter d'autres documents. Les conditions de déclenchement d'un événement de stockage sont les suivantes :
Le même navigateur ouvre deux pages de même origine
Modifié dans une page Web localStorage
Une autre page Web a enregistré l'événement storage
L'événement de stockage n'est disponible que sur la même page Cela a un effet, mais cela n’a aucun effet s’il provient de sources différentes. Alors, qu’est-ce que l’homologie ?
L'URL se compose du protocole, du nom de domaine, du port et du chemin. Si le protocole, le nom de domaine et le port de deux URL sont identiques, cela signifie qu'elles ont la même origine. Par exemple :
1 2 //这个网址,协议是 3 4 //对比URL: 5 http://www.wszdaodao.cn/demo2/other.html //同源 6 http://www.wszdaodao.cn:81/demo/index.html //不同源 7 http://sxh.wszdaodao.cn/demo/index.html //不同源 8 http://www.mamama.cn/demo/index.html //不同源
Par conséquent, lors du test, assurez-vous qu'il s'agit de la même page source.
Ce qui suit est le code d'interaction entre les deux pages. La mise en œuvre est très simple, communiquant entre la pageA et la pageB.
page A : Définir localStorage
<!DOCTYPE html> <html> <head> <title>page A</title> </head> <body> <button>click<button> </body> <script> document.querySelector('button').onclick = function(){ localStorage.setItem('Num', Math.random()*10); } </script> </html>
page B : Écouter les événements de stockage
<!DOCTYPE html> <html> <head> <title>page B</title> </head> <body> <script> window.addEventListener("storage", function (e) { console.log(e) console.log(e.newValue) }); </script> </body> </html>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!