2008-11-06 155 views
54

¿Existe alguna manera fácil de modificar este código para que la URL objetivo se abra en la MISMA ventana?Javascript: abrir nueva página en la misma ventana

<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>`` 

Respuesta

69

El segundo parámetro de window.open() es una cadena que representa el nombre de la ventana de destino.

Establégelo en: "_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> 


Nota al margen: La siguiente pregunta da una visión general de una manera sin duda mejor para unirse a los controladores de eventos enlaces HTML.

What's the best way to replace links with js functions?

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

me gustaría tener que de una manera ligeramente diferente si fuera tú. Cambie el enlace de texto cuando se carga la página, no con el clic. Voy a dar el ejemplo de jQuery, pero podría ser fácilmente hecho en JavaScript básico (aunque, jQuery es más bonito)

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

y escribir el código HTML siguiente manera:

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

los beneficios de esta es que las personas pueden ver en qué están haciendo clic (el href ya está configurado) y elimina el javascript de su HTML.

Dicho todo esto, parece que estás usando PHP ... ¿por qué no agregarlo en el servidor?

1

Al agregar la URL al final de la href, ¿Cada enlace se abrirá en la misma ventana? También podría usar _BLANK dentro del HTML para hacer lo mismo.

3

probar esto funcionó para mí en IE 7 e IE 8

$(this).click(function (j) { 
      var href = ($(this).attr('href')); 
      window.location = href; 
      return true; 
70
<script type="text/javascript"> 
window.open ('YourNewPage.htm','_self',false) 
</script> 

véase la referencia: http://www.w3schools.com/jsref/met_win_open.asp

+0

Esto es realmente salva mi día ehehe ... :) –

+0

Se supone que el 'falso' significa que puedes usar el botón Atrás para volver t o la página que creó la ventana, ¿verdad? Eso no está funcionando para mí. – Noumenon

2

Esto es lo que funcionó para mí:

<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> 
Cuestiones relacionadas