2 votes

De quel javascript aurais-je besoin pour ouvrir deux pages web en même temps et fermer l'onglet précédent ?

Je travaille sur un projet d'examen où les étudiants cliqueront sur une option qui ouvrira deux onglets avec des études de cas différentes et fermera l'onglet précédent, mais je n'ai pas d'expérience avec Javascript et je ne sais pas comment aborder le problème.

Il est construit sur Wordpress et j'ai essayé d'utiliser différents plugins mais tous ont échoué. J'ai réussi à faire en sorte que les liens s'ouvrent dans un nouvel onglet (ce qui n'est pas différent), mais pas à fermer l'onglet précédent ou à ouvrir deux onglets avec des pages web individuelles.

Nous utilisons actuellement des balises d'ancrage en HTML et nous mettons le javascript en ligne, mais je pense que nous devrions l'aborder différemment, éventuellement en appelant un fichier javascript.

Nous voulons utiliser Javascript car cela nous permettra d'ajouter du code pour suivre les utilisateurs lorsqu'ils cliquent sur le lien.

La présentation de la page est très basique avec un seul lien (il y a un code de suivi de la conversion des pages vues pour connaître le nombre d'étudiants qui passent l'examen). Il y a donc très peu de chances que le script entre en conflit avec quoi que ce soit d'autre, c'est pourquoi l'onglet précédent doit se fermer automatiquement pour éviter toute distraction.

<a href="http://www.example.com" onclick="window.open('https://www.example.com');return false">Example</a>

Il ouvre la page web dans un nouvel onglet mais je ne sais pas comment faire pour qu'il ouvre deux nouveaux onglets (URL différents) et ferme l'onglet précédent.

(J'ai remarqué que des questions similaires ont été posées, mais qu'aucune ne concerne la fermeture de l'onglet précédent).

0voto

JasonB Points 5335

Pour ouvrir plusieurs pages à la fois, vous pouvez utiliser le code suivant.

window.open('url1.com');
window.open('url2.com');

Comment faire en sorte qu'un lien ouvre plusieurs pages lorsqu'on clique dessus ?

Pour fermer l'onglet ou la fenêtre en cours, utilisez la touche

window.close();

Comment fermer l'onglet en cours dans une fenêtre de navigateur ?

Pour effectuer les 3 actions dans le eventhandler inline comme dans votre code d'exemple, vous pouvez appeler window.open deux fois avec des urls différentes, window.close(), puis renvoyer false.

0voto

Jorrin Bruns Points 18

Si vous souhaitez effectuer ces trois actions en même temps, vous pouvez créer une fonction qui les exécute toutes les trois, puis appeler cette fonction avec l'événement onclick.

<a href="http://www.example.com" onclick="myFunction()">

Vous définirez ensuite la fonction dans un fichier JS et l'associerez à votre code HTML. Quelque chose comme ceci :

<script src="myscripts.js"></script>

Le fichier JS (dans cet exemple) s'appelle myscripts.js et ressemble à ceci :

function myFunction(){
  window.open('url1.com');
  window.open('url2.com');
  window.close()
}

Malheureusement, vous ne pouvez pas fermer Windows à l'aide de Window.close() si cette fenêtre n'a pas été ouverte par un script, ce qui pose un autre problème. Sans plus d'informations sur la façon dont l'utilisateur arrive sur cette page, je ne peux pas vraiment suggérer de solution.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X