Maison  >  Article  >  interface Web  >  Comment empêcher l'onglet Chrome de clignoter lors de l'ouverture des onglets d'arrière-plan en JavaScript ?

Comment empêcher l'onglet Chrome de clignoter lors de l'ouverture des onglets d'arrière-plan en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-07 13:02:02208parcourir

How to Prevent Chrome Tab Flashing When Opening Background Tabs in JavaScript?

Simulation de l'ouverture d'un onglet en arrière-plan pour éviter le clignotement de Chrome

En JavaScript, l'ouverture d'un nouvel onglet tout en gardant le focus sur l'onglet actuel peut être obtenue en utilisant le code suivant :

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

Cependant, cette méthode provoque un bref scintillement du nouvel onglet dans Chrome. Pour éviter ce problème, envisagez d'utiliser l'approche suivante :

Simulation de combinaisons de touches

Chrome prend en charge l'ouverture des onglets en arrière-plan via des combinaisons de touches spécifiques. Vous pouvez simuler ces combinaisons à l'aide de JavaScript et ouvrir par programmation des onglets d'arrière-plan.

Le code ci-dessous montre la simulation d'un événement de clic Ctrl sur un element :

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

En appelant cette fonction, vous pouvez ouvrir une nouvelle page dans un onglet d'arrière-plan sans provoquer de scintillement gênant.

Remarque : Cette approche a été testé uniquement dans Chrome.

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