Öffnen eines neuen Tabs im Hintergrund ohne Fokuswechsel
Bei dieser Frage möchte der Benutzer einen neuen Tab in einem separaten Tab öffnen ohne dass es zu einer Fokusverlagerung auf die neue Registerkarte kommt. Sie demonstrieren einen Versuch mit den Methoden open() und focus(), stoßen jedoch auf ein kurzes Aufblitzen des neuen Tabs, bevor sie zum aktuellen Tab in Chrome zurückkehren.
Die bereitgestellte Antwort stellt jedoch eine alternative Lösung mithilfe von Ereignissen dar Simulation, um dieses Problem zu umgehen.
Benutzerdefinierter Ereignisversand
Der Schlüssel zum Erreichen dieses Verhaltens liegt in der dynamischen Erstellung eines Element hinzufügen und dessen href-Attribut der gewünschten URL zuweisen. Anschließend wird ein Ereignis (in diesem Fall ein Mausklick) erstellt und mit bestimmten Parametern initialisiert, einschließlich des Tastenmodifikators „Strg“. Dies emuliert das Gedrückthalten der „Strg“-Taste beim Klicken auf einen Link, was das Standardverhalten zum Öffnen eines neuen Tabs im Hintergrund ist.
Implementierung
Der bereitgestellte Code veranschaulicht diese Technik:
function openNewBackgroundTab(){ var a = document.createElement("a"); a.href = "http://www.google.com/"; var evt = document.createEvent("MouseEvents"); //the tenth parameter of initMouseEvent sets ctrl key evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null); a.dispatchEvent(evt); }
Fazit
Durch die Nutzung der Ereignissimulation öffnet diese Lösung effektiv einen neuen Tab im Hintergrund, ohne den Fokus zu beeinträchtigen die aktuelle Registerkarte. Diese Technik ist besonders nützlich für Browsererweiterungen oder Bookmarklets, bei denen es für ein nahtloses Benutzererlebnis entscheidend ist, den Fokus auf der aktuellen Registerkarte zu behalten.
Das obige ist der detaillierte Inhalt vonWie öffne ich einen neuen Tab im Hintergrund, ohne den Fokus zu wechseln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!