Bonjour,
Le problème posé :
Le problème global est la gestion d'un ensemble d'onglets tels que l'on n'ouvre pas (sauf action volontaire) à nouveau un document déjà ouvert.
Un fragment (élement) peut être défini comme cible dans l'url (toutes les pages utilisent une fonction mettant graphiquement en évidence un fragment (élément) ciblé. En général si l'on vise un nouveau fragment dans un onglet déja ouvert on active l'onglet et la nouvelle cible sera atteinte.
Bien, je sèche.
La solution élémentaire
Pour réouvrir des onglets déja ouverts à partir d'une même "famille d'onglets", j'utilise l'option "name" dans l'exécution de window.open(url,name,.. []).
Je teste et débogue d'abord avec chrome (Version 43.0.2357.130 m) puis avec Explorer et Firefox.
Le test en ligne de l'exemple de W3School ( adapté par mes soins pour la réouverture et les fragments) fonctionne très bien (y compris pour atteindre un fragment "anchor (ancre)".
Lorsque je fais tourner l'appli (lourde Wordpress avec beaucoup de plugins dont mes développements), j'obtiens un phénomène incongru :
1- l'activation ou l'ouverture de l'onglet défini par url et name se déroule normalement, mais
2- L'activation (ou la création) d'onglet est obtenu par un lien utilisant onclick. Mais l'exécution de window.open(url,name,.. []) lance aussi la mise à jour de l'onglet parent comme si on exécutait simultanément window.location(url) sur la même url. J'obtiens ainsi deux onglets identiques
Le code est simplissime
et pour js :
Je ne trouve pas de piste.
J'ai mis des points d'arrêts sur tous les points sensibles sans rien trouver.
Il est certain que le problème est lié au reste du code, mais en quoi ?
Cordialement
Trebly
Note :
1- clic exécute la fonction par défaut clic-droit offre les options du navigateur
2- Tous les onglets sont nommés
3- Test avec explorer 11 id°
4- Exemple W3School :
http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_open
Modifié par Trebly (02 Jul 2015 - 19:39)
Le problème posé :
Le problème global est la gestion d'un ensemble d'onglets tels que l'on n'ouvre pas (sauf action volontaire) à nouveau un document déjà ouvert.
Un fragment (élement) peut être défini comme cible dans l'url (toutes les pages utilisent une fonction mettant graphiquement en évidence un fragment (élément) ciblé. En général si l'on vise un nouveau fragment dans un onglet déja ouvert on active l'onglet et la nouvelle cible sera atteinte.
Bien, je sèche.
La solution élémentaire
Pour réouvrir des onglets déja ouverts à partir d'une même "famille d'onglets", j'utilise l'option "name" dans l'exécution de window.open(url,name,.. []).
Je teste et débogue d'abord avec chrome (Version 43.0.2357.130 m) puis avec Explorer et Firefox.
Le test en ligne de l'exemple de W3School ( adapté par mes soins pour la réouverture et les fragments) fonctionne très bien (y compris pour atteindre un fragment "anchor (ancre)".
Lorsque je fais tourner l'appli (lourde Wordpress avec beaucoup de plugins dont mes développements), j'obtiens un phénomène incongru :
1- l'activation ou l'ouverture de l'onglet défini par url et name se déroule normalement, mais
2- L'activation (ou la création) d'onglet est obtenu par un lien utilisant onclick. Mais l'exécution de window.open(url,name,.. []) lance aussi la mise à jour de l'onglet parent comme si on exécutait simultanément window.location(url) sur la même url. J'obtiens ainsi deux onglets identiques
Le code est simplissime
<a href="url" onclick="ActivateTab(url, name,..." >Aller à... </a>
et pour js :
function ActivateTab(url,name,...) { window.open(url,name) }
Je ne trouve pas de piste.
J'ai mis des points d'arrêts sur tous les points sensibles sans rien trouver.
Il est certain que le problème est lié au reste du code, mais en quoi ?
Cordialement
Trebly
Note :
1- clic exécute la fonction par défaut clic-droit offre les options du navigateur
2- Tous les onglets sont nommés
3- Test avec explorer 11 id°
4- Exemple W3School :
http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_open
<!DOCTYPE html>
<html>
<body>
<p>Click the button to open a new browser window.</p>
<a href="http://www.w3schools.com#test3" onclick="myFunction()">Try it</a>
<!-- button ou a =dito -->
<script>
function myFunction() {
window.open("http://www.w3schools.com#test3","w3s3"); /* Ajouter un id="test3" dans l'url avec le deboguer */
}
</script>
</body>
</html>
Modifié par Trebly (02 Jul 2015 - 19:39)