Vous ne pouvez pas directement contrôler cela, car il s'agit d'une option contrôlée par les utilisateurs d'Internet Explorer.
L'ouverture de pages à l'aide de Window.open avec un nom de fenêtre différent s'ouvrira dans une nouvelle fenêtre du navigateur comme une fenêtre pop-up, OU dans un nouvel onglet, si l'utilisateur a configuré le navigateur à cet effet.
EDITAR:
Une explication plus détaillée :
1. Dans les navigateurs modernes, window.open s'ouvrira dans un nouvel onglet plutôt que dans une fenêtre contextuelle.
2. Vous pouvez forcer un navigateur à utiliser une nouvelle fenêtre ('popup') en spécifiant des options dans le 3ème paramètre
3. Si l'appel à window.open ne fait pas partie d'un événement initié par l'utilisateur, il s'ouvrira dans une nouvelle fenêtre.
4. Un "événement initié par l'utilisateur" ne doit pas nécessairement être le même appel de fonction, mais il doit provenir de la fonction invoquée par un clic de l'utilisateur.
5. Si un événement initié par l'utilisateur délègue ou reporte un appel de fonction (dans un écouteur d'événement ou un délégué non lié à l'événement de clic, ou en utilisant setTimeout par exemple), il perd son statut d'événement "initié par l'utilisateur".
6. Certains bloqueurs de fenêtres intempestives autorisent les fenêtres ouvertes à l'initiative de l'utilisateur, mais pas celles ouvertes autrement.
7. Si un popup est bloqué, ceux qui sont normalement autorisés par un bloqueur (via des événements initiés par l'utilisateur) seront parfois également bloqués. Quelques exemples
Obliger une fenêtre à s'ouvrir dans une nouvelle instance du navigateur, au lieu d'un nouvel onglet :
window.open('page.php', '', 'width=1000');
L'exemple suivant est considéré comme un événement initié par l'utilisateur, même s'il appelle une autre fonction :
function o(){
window.open('page.php');
}
$('button').addEvent('click', o);
L'événement suivant ne serait pas qualifié d'événement initié par l'utilisateur, puisque le setTimeout le reporte :
function g(){
setTimeout(o, 1);
}
function o(){
window.open('page.php');
}
$('button').addEvent('click', g);
2 votes
Etes-vous sûr de ce que vous affirmez ? Les deux fragments ont le même résultat.
1 votes
Le fait qu'une fenêtre s'ouvre dans un onglet ou dans une nouvelle fenêtre dépend du navigateur local et de la façon dont l'utilisateur configure son navigateur - ce n'est pas quelque chose que vous pouvez spécifier en javascript.