web-dev-qa-db-fra.com

Ouvrir l'URL dans la même fenêtre et dans le même onglet

Je veux ouvrir un lien dans la même fenêtre et dans le même onglet qui contient la page avec le lien.

Lorsque j'essaie d'ouvrir un lien à l'aide de window.open, il s'ouvre dans un nouvel onglet, pas dans le même onglet de la même fenêtre.

302
user1065055

Vous devez utiliser l'attribut name:

window.open("https://www.youraddress.com","_self")

Edit: L'URL devrait être précédé du protocole. Sans il tente d'ouvrir l'URL relative. Testé dans Chrome 59, Firefox 54 et IE 11.

517
vdbuilder

Utilisez ceci:

location.href = "http://example.com";
150
Dave L.

Afin de vous assurer que le lien est ouvert dans le même onglet, vous devez utiliser window.location.replace()

Voir l'exemple ci-dessous:

window.location.replace("http://www.w3schools.com");

Source: http://www.w3schools.com/jsref/met_loc_replace.asp

41
andromeda

Vous pouvez le faire aller à la même page sans spécifier l'URL:

window.open('?','_self');
23
Tom Berthold

Si vous avez vos pages dans "frame", cliquez sur "Window.open ('logout.aspx', '_ self')"

sera redirigé dans le même cadre. Donc en utilisant

"Window.open('logout.aspx','_top')"

nous pouvons charger la page en tant que nouvelle demande.

19
Magesh

L'une des fonctionnalités javascript les plus importantes est de déclencher des gestionnaires onclick à la volée. J'ai trouvé le mécanisme suivant plus fiable que d'utiliser location.href='' ou location.reload() ou window.open:

// this function can fire onclick handler for any DOM-Element
function fireClickEvent(element) {
    var evt = new window.MouseEvent('click', {
        view: window,
        bubbles: true,
        cancelable: true
    });

    element.dispatchEvent(evt);
}

// this function will setup a virtual anchor element
// and fire click handler to open new URL in the same room
// it works better than location.href=something or location.reload()
function openNewURLInTheSameWindow(targetURL) {
    var a = document.createElement('a');
    a.href = targetURL;
    fireClickEvent(a);
}

Le code ci-dessus est également utile pour ouvrir un nouvel onglet/fenêtre et contourner tous les bloqueurs de fenêtres contextuelles !!! Par exemple.

function openNewTabOrNewWindow(targetURL) {
    var a = document.createElement('a');
    a.href = targetURL;

    a.target = '_blank'; // now it will open new tab/window and bypass any popup blocker!

    fireClickEvent(a);
}
11
Muaz Khan

Ouvrir une autre URL comme un clic dans le lien

window.location.href = "http://example.com";
10
DarckBlezzer

Devez-vous utiliser window.open? Qu'en est-il de l'utilisation de window.location="http://example.com"?

7
Jeffrey Zhao

window.open(url, wndname, params), il a trois arguments. si vous ne voulez pas qu'il soit ouvert dans la même fenêtre, il suffit de définir un nom différent. tel que :

window.open(url1, "name1", params); // this open one window or tab
window.open(url1, "name2", params); // though url is same, but it'll open in another window(tab).

Voici les détails sur window.open(), vous pouvez y faire confiance!
https://developer.mozilla.org/en/DOM/window.open

essayer ~~

5
ijse

Avec HTML 5, vous pouvez utiliser API d'historique .

history.pushState({
  prevUrl: window.location.href

}, 'Next page', 'http://localhost/x/next_page');
history.go();

Ensuite, sur la page suivante, vous pouvez accéder à un objet d'état comme

let url = history.state.prevUrl;
if (url) {
  console.log('user come from: '+ url)
}
2
Adi Prasetyo

Exactement comme ceci window.open("www.youraddress.com","_self")

1
thanglv

C'est assez facile. Ouvre la première fenêtre en tant que window.open(url, <tabNmae>)

Exemple: window.open("abc.com",'myTab')

et pour tout prochain window.open, utilisez même nom d’onglet au lieu de _self, _parent etc.

1
Samit
   Just Try in button.

   <button onclick="location.reload();location.href='url_name'" 
   id="myButton" class="btn request-callback" >Explore More</button>

   Using href 

  <a href="#" class="know_how" onclick="location.reload();location.href='url_name'">Know More</a> 
1
Siddharth Shukla