Ouvrez un nouvel onglet en javascript

Comment puis-je ouvrir un nouvel onglet à l'aide de javascript sans passer au nouvel onglet?
Par exemple, lorsqu'un utilisateur clique sur un lien, un nouvel onglet doit être ouvert, mais l'utilisateur doit rester sur l'onglet actuel.

Le navigateur se concentre automatiquement sur le nouvel onglet, mais vous pouvez appeler la mise au point:

function openWindow( url ) { window.open(url, '_blank'); window.focus(); } <a href="http://www.example.com/" onclick="javascript:openWindow(this.href);return false;">Click Me</a> 

Malheureusement, vous ne pouvez pas le faire actuellement, mais vous pouvez vous rapprocher. Vous pouvez ouvrir une nouvelle fenêtre et, si vous le faites sans spécifier les dimensions de la fenêtre ou les caractéristiques de la fenêtre, la plupart des navigateurs modernes ouvriront un nouvel onglet à la place (selon les préférences de l'utilisateur, mais vous voulez faire ce que l'utilisateur préfère de toute façon, droite?). Donc, window.open(url) simplement sur window.open(url) ou window.open(url, name) si vous allez utiliser le nom pour quelque chose. Assurez-vous de le faire en réponse directe à un événement lancé par l'utilisateur, sinon le bloqueur de fenêtres pop-up du navigateur … bloquera probablement le pop-up. 🙂

Exemple en direct

En ce qui concerne la concentration sur votre fenêtre … bonne chance avec ça. Vous pouvez appeler window.focus() après window.open(...) , mais dans mon expérience, cela ne fonctionne pas habituellement.

En jetant là-bas: si vous créez une chose, l'utilisateur interagit avec un lien authentique avec une URL, l' utilisateur peut décider s'il faut l'ouvrir dans un nouvel onglet, une nouvelle fenêtre, quelle que soit la nature Assez sophistiqué pour connaître Shift + Cliquez et Ctrl + Maj + Cliquer, ou le menu contextuel).

Malheureusement, vous ne pouvez pas le faire dans TOUS les navigateurs, mais vous pouvez le faire en Chrome si vous implémentez l'extension du navigateur. Comment manipuler avec des onglets sur Chrome par javascript:

http://code.google.com/chrome/extensions/tabs.html

 chrome.tabs.create(object createProperties, function callback) Creates a new tab. Note: This function can be used without requesting the 'tabs' permission in the manifest. Parameters **createProperties** ( object ) **windowId** ( optional integer ) The window to create the new tab in. Defaults to the current window. **index** ( optional integer ) The position the tab should take in the window. The provided value will be clamped to between zero and the number of tabs in the window. **url** ( optional string ) The URL to navigate the tab to initially. Fully-qualified URLs must include a scheme (ie 'http://www.google.com', not 'www.google.com'). Relative URLs will be relative to the current page within the extension. Defaults to the New Tab Page. **selected** ( optional boolean ) Whether the tab should become the selected tab in the window. Defaults to true pinned ( optional boolean ) Whether the tab should be pinned. Defaults to false **callback** ( optional function ) 

Il s'agit de paramètres spécifiques à l'utilisateur, vous ne pouvez pas modifier ce comportement de JS.

 (function(a){ document.body.appendChild(a); a.setAttribute('href', location.href); a.dispatchEvent((function(e){ e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null); return e }(document.createEvent('MouseEvents'))))}(document.createElement('a'))) 

Post est vieux mais sans réponse 100% correcte.

SOLUTION POUR TOUS LES NAVIGATEURS:

Vous pouvez ouvrir un nouvel onglet sur les mêmes URL de domaine via:

 window.open("newurl.php", "_blank"); 

Et pour les nouveaux onglets multi-domaines, vous devez créer un script local simple, comme ceci:

Dans le nouveau fichier "redirect.php", vous passez un paramètre (URL de l'onglet cible nouvelle) comme ceci

 <?php $newURL=$_GET['u']; header('Location: '.$newURL); ؟> 

Et vous pouvez créer un nouvel onglet avec n'importe quelle URL cible avec:

 window.open("redirect.php?u=http://www.google.com", "_blank"); 

🙂

C'est ma solution dans mon site. Et travailler avec n'importe

Pour moi, en utilisant

 window.open("https://stackoverflow.com"); 

Travaillé parfaitement. Ce que cela dépend dépend du navigateur que vous utilisez, du système d'exploitation et de vos préférences personnelles.

Chrome, Internet Explorer et Firefox ont tous ouvert un nouvel onglet. Désolé si cela ne fonctionne pas pour vous.

(Je me suis rendu compte que c'est un vieux fil)