Maison > Questions et réponses > le corps du texte
J'ai rencontré un tel problème dans le projet.
Utilisez window.open(location.href, projectId) dans la fenêtre parent pour ouvrir une nouvelle fenêtre avec projectId comme window.name.
Puis dans la fenêtre parent, je souhaite basculer directement vers la fenêtre ouverte correspondante en fonction du projectId, mais sans actualiser la fenêtre.
L'utilisation directe de window.open(location.href, projectId) passera à la fenêtre correspondante, mais la page sera actualisée. Existe-t-il un moyen de basculer uniquement sans actualiser ?
淡淡烟草味2017-05-19 10:36:22
Utilisez une variable pour enregistrer la valeur de retour de window.open, et la valeur de retour est la méthode window
对象,执行 focus
de cette fenêtre.
win1 = window.open(url1);
win2 = window.open(url2);
// 后续用 win1 这个引用执行 focus 方法
if (!win1.closed) {
win1.focus();
}
为情所困2017-05-19 10:36:22
Utiliser l'API
liée à l'historique
de html5
html5
的history
相关API
history.pushState()
history. popstate
history.pushState()
history.popstate
Événements et plus#🎜🎜#
#🎜🎜#Pour le contenu associé, veuillez vous référer à l'historique du navigateur MDN#🎜🎜#某草草2017-05-19 10:36:22
Supposons qu'une fenêtre ouvre la fenêtre B, que la fenêtre B ouvre la fenêtre C, que A ait une référence à B et que B ait une référence à C.
À l'heure actuelle, passer d'une fenêtre A à une fenêtre B ou passer d'une fenêtre B à une fenêtre C peut être directement implémenté à l'aide de window.focus().
Mais je veux passer à C dans la fenêtre A. Après avoir vérifié diverses API, je n'ai pas trouvé comment obtenir directement l'objet fenêtre correspondant via window.name. J'ai essayé le stockage local mais je n'ai pas pu enregistrer l'objet fenêtre. Cette situation est un peu gênante.
Après y avoir réfléchi, si cela doit être réalisé, il devrait y avoir un moyen. En gros, localStorage est utilisé pour sauvegarder l'intégralité de l'arborescence. Le nœud racine est A lorsqu'il est ouvert pour la première fois, le nœud enfant de A est B et le nœud enfant de B est C. De cette façon, toutes les fenêtres peuvent enfin trouver le propriétaire de la dernière fenêtre à sauter, puis notifier le propriétaire de cette fenêtre couche par couche via postMessage, lui permettant de déclencher la méthode window.focus() cible
Mais de cette façon, le projet La structure arborescente deviendra un peu compliquée si le nombre de temps de commutation est élevé et si la surcharge de communication de chaque couche est estimée assez élevée. Ce serait beaucoup plus pratique si le navigateur disposait d'une méthode pour obtenir l'objet window basé sur window.name.