web-dev-qa-db-fra.com

Javascript: ouvre une nouvelle page dans la même fenêtre

Existe-t-il un moyen simple de modifier ce code pour que l'URL cible s'ouvre dans la fenêtre SAME?

<a href="javascript:q=(document.location.href);void(open('http://example.com/submit.php?url='+escape(q),'','resizable,location,menubar,toolbar,scrollbars,status'));">click here</a>``
57
55skidoo

Le second paramètre de window.open () est une chaîne représentant le nom de la fenêtre cible.

Réglez-le sur: "_self".

<a href="javascript:q=(document.location.href);void(open('http://example.com/submit.php?url='+escape(q),'_self','resizable,location,menubar,toolbar,scrollbars,status'));">click here</a>


Sidenote: La question suivante donne un aperçu d’un moyen sans doute meilleur de lier les gestionnaires d’événements à des liens HTML.

Quel est le meilleur moyen de remplacer des liens par des fonctions js?

71
keparo
<script type="text/javascript">
window.open ('YourNewPage.htm','_self',false)
</script>

voir la référence: http://www.w3schools.com/jsref/met_win_open.asp

77
parwaze
<a href="javascript:;" onclick="window.location = 'http://example.com/submit.php?url=' + escape(document.location.href);'">Go</a>;
7
Stephen Walcher

Voici ce qui a fonctionné pour moi:

<button name="redirect" onClick="redirect()">button name</button>
<script type="text/javascript">
function redirect(){
var url = "http://www.google.com";
window.open(url, '_top');
}
</script>
3
Felceris Juozas

essayez cela a fonctionné pour moi en 7 et 8

 $(this).click(function (j) {
            var href = ($(this).attr('href'));
            window.location = href;
            return true;
3
Valentine Nzekwe

Donc, en ajoutant l'URL à la fin du href, chaque lien s'ouvrira dans la même fenêtre? Vous pourriez aussi probablement utiliser _BLANK dans le code HTML pour faire la même chose.

1
Brett Melton

Je prendrais cela d'une manière légèrement différente si j'étais vous. Changer le lien de texte lorsque la page se charge, pas sur le clic. Je donnerai l'exemple dans jQuery, mais cela pourrait facilement se faire avec javascript dans Vanilla (cependant, jQuery est plus joli)

$(function() {
    $('a[href$="url="]')    // all links whose href ends in "url="
        .each(function(i, el) {
            this.href += escape(document.location.href);
        })
    ;
});

et écrivez votre HTML comme ceci:

<a href="http://example.com/submit.php?url=">...</a>

l'avantage de ceci est que les gens peuvent voir ce qu'ils cliquent sur (le href est déjà défini), et cela supprime le javascript de votre code HTML.

Cela dit, on dirait que vous utilisez PHP ... pourquoi ne pas l'ajouter côté serveur?

1
nickf

essayer

<a href="#" 
   onclick="location='http://example.com/submit.php?url='+escape(location)"
   >click here</a>
0
Kamil Kiełczewski