Maison  >  Article  >  interface Web  >  Comment puis-je ouvrir un nouvel onglet en arrière-plan à partir de JavaScript sans Flash ?

Comment puis-je ouvrir un nouvel onglet en arrière-plan à partir de JavaScript sans Flash ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-07 14:47:02805parcourir

How Can I Open a New Tab in the Background from JavaScript Without a Flash?

Puis-je ouvrir un nouvel onglet en arrière-plan tout en restant sur l'onglet actuel ?

Lorsque je travaille avec JavaScript, il est possible d'ouvrir une nouvelle page dans un autre onglet tout en restant concentré sur l'onglet actuel à l'aide du code suivant :

open('http://example.com/');
focus();

Cependant, cette approche peut provoquer un flash momentané du nouvel onglet avant de revenir à l'onglet actuel dans Chrome . Pour éviter ce problème, une méthode plus sophistiquée est nécessaire.

Solution : simulation d'événements clés

Cette solution consiste à simuler une combinaison de touches (par exemple, clic Ctrl) sur un généré dynamiquement élément pour créer un onglet d’arrière-plan. Le code suivant accomplit cela :

function openNewBackgroundTab(){
    var a = document.createElement("a");
    a.href = "http://www.google.com/";
    var evt = document.createEvent("MouseEvents");
    // Simulate Ctrl key press
    evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
    a.dispatchEvent(evt);
}

Cette méthode fonctionne en créant un élément, en définissant son attribut href sur l'URL souhaitée, puis en envoyant un événement de clic avec la touche "Ctrl" simulée. Cela entraîne l'ouverture d'un onglet en arrière-plan sans affecter le focus de l'onglet actuel.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn