2012-01-11 36 views
190

¿Cuál es la forma más sencilla de crear una etiqueta <a> que enlaza con la página web anterior? Básicamente, un botón de retroceso simulado, pero un hipervínculo real. Las tecnologías del lado del cliente solamente, por favor.¿Cómo hacer un enlace de retroceso de HTML?

Editar
Buscando soluciones que tienen la ventaja de mostrar la URL de la página que está a punto de hacer clic en el estacionario, como un hipervínculo normal, estática. Prefiero que el usuario no mire al history.go(-1) al pasar el ratón sobre un hipervínculo. El mejor que he encontrado hasta ahora es:

<script> 
 
    document.write('<a href="' + document.referrer + '">Go Back</a>'); 
 
</script>

Es document.referrer fiable? Cross-browser seguro? Estaré encantado de aceptar una mejor respuesta.

+2

JavaScript es una tecnología del lado del cliente, algunos clientes (como yo) acaba de elegir para desactivarlo (por defecto). ¡Ese es el poder del cliente! : D Pero sí, no hay forma de que HTML por sí solo determine qué página anterior era. – animuson

Respuesta

89

Esta solución tiene la ventaja de mostrar la URL de la página enlazada al desplazarse, como la mayoría de los navegadores lo hacen de forma predeterminada, en lugar de history.go(-1) o similar:

<script> 
    document.write('<a href="' + document.referrer + '">Go Back</a>'); 
</script> 
+7

Esto también tiene el beneficio de cubrir el caso de que la página de referencia se abrió con un atributo 'target = '_ blank" 'en el enlace, que' history.go (-1) 'no. –

+4

Esta solución pierde la parte del enlace siguiente #, el 'javascript: history.back()' funciona correctamente. – Liviu

+11

El inconveniente de esta solución es que no podrá volver más de una página. Ejemplo; navegue a las páginas a, b, c, d - presione el botón Atrás varias veces c, d, c, d, c, d. Compare esto con .history.Atrás() a, b, c, d presione el botón Atrás repetidamente d, c, b, a – orangesherbert

23

puede probar Javascript

<A HREF="javascript:history.go(-1)"> 

refieren JavaScript Back Button

EDITAR

para mostrar la URL de referencia http://www.javascriptkit.com/javatutors/crossmenu2.shtml

y enviar el elemento a sí mismo en onmouseover como sigue

function showtext(thetext) { 
 
    if (!document.getElementById) 
 
    return 
 
    textcontainerobj = document.getElementById("tabledescription") 
 
    browserdetect = textcontainerobj.filters ? "ie" : typeof textcontainerobj.style.MozOpacity == "string" ? "mozilla" : "" 
 
    instantset(baseopacity) 
 
    document.getElementById("tabledescription").innerHTML = thetext.href 
 
    highlighting = setInterval("gradualfade(textcontainerobj)", 50) 
 
}
<a href="http://www.javascriptkit.com" onMouseover="showtext(this)" onMouseout="hidetext()">JavaScript Kit</a>

cheque jsfiddle

+0

Esa no es una etiqueta ''. – paislee

+0

¿Puedes explicarnos la última edición? Solo quiero un enlace normal como se muestra en la parte inferior de la mayoría de los navegadores. – paislee

+0

como todos los programas del navegador para todos, para los que no necesita hacer nada, pero si desea mostrarlo en su propio div puede especificar una 'descripción de tabla div' en cualquier lugar de una página para mostrar un enlace al pasar la etiqueta del ancla –

26

La forma más sencilla es utilizar history.go(-1);

Prueba esto:

<a href="#" onclick="history.go(-1)">Go Back</a>

5

probar esto

<a href="javascript:history.go(-1)"> Go Back </a> 
14

Un enlace es un enlace que se mueve hacia atrás el navegador una página, como si el usuario hubiera hecho clic en el botón Atrás en la mayoría de los navegadores. Los enlaces de vuelta usan JavaScript. Mueve el navegador hacia atrás una página si su navegador admite JavaScript (que sí lo hace) y si es compatible con el objeto window.history, que es necesario para los enlaces posteriores.

formas simples son

<a href="#" onClick="history.go(-1)">Go Back</a> 

O:

function goBack() { 
 
    window.history.back() 
 
}
<a href="#" onclick="goBack()" />Go Back</a>

En términos generales un enlace de vuelta no es necesario ... el botón Atrás suele ser suficiente bastante bien, y por lo general se también puede simplemente vincular a la página anterior en su sitio.Sin embargo, a veces es posible que desee proporcionar un enlace de regreso a una de varias páginas "anteriores", y ahí es donde un vínculo de retroceso es útil. Así que lo remita a continuación tutorial si usted quiere hacer en la forma más avanzada:

http://www.htmlcodetutorial.com/linking/linking_famsupp_108.html

+1

A diferencia de la solución más votada, esto mantiene la posición de desplazamiento que tenía el usuario. – Ketri

+0

@Ketri puede brindar soporte para la declaración? deben ser idénticos: https://www.w3schools.com/jsref/met_his_back.asp – FarO

361

Y de otra manera:

<a href="javascript:history.back()">Go Back</a>

+5

Y para un botón: '' – Leo

+0

Una desventaja de este enfoque es que las funciones estándar del navegador, como "desplazarse para ver la URL" y hacer clic con el botón derecho -> copiar el enlace, se romperán. –

0

Puede también utilizar history.back() junto document.write() para mostrar enlace sólo cuando en realidad hay un sitio para ir de nuevo a:

<script> 
    if (history.length > 1) { 
    document.write('<a href="javascript:history.back()">Go back</a>'); 
    } 
</script> 
+0

' document.write' sobrescribe todo en la página. ¿Por qué * siempre * usar eso? – jpaugh

+0

Debe ejecutar este script mientras la página aún se está cargando. –

2
<a href="#" onclick="history.back();">Back</a> 
4

Esta solución le ofrece lo mejor de ambos mundos

  • Los usuarios se desplazan sobre el enlace para ver la URL
  • Los usuarios no terminan con un archivo dañado back-stack

Más detalles en el código de comentarios a continuación.

var element = document.getElementById('back-link'); 
 

 
// Provide a standard href to facilitate standard browser features such as 
 
// - Hover to see link 
 
// - Right click and copy link 
 
// - Right click and open in new tab 
 
element.setAttribute('href', document.referrer); 
 

 
// We can't let the browser use the above href for navigation. If it does, 
 
// the browser will think that it is a regular link, and place the current 
 
// page on the browser history, so that if the user clicks "back" again, 
 
// it'll actually return to this page. We need to perform a native back to 
 
// integrate properly into the browser's history behavior 
 
element.onclick = function() { 
 
    history.back(); 
 
}
<a id="back-link">back</a>

2

manera más fácil para vincular su navegador a la página anterior.

<a href="javascript:history.back()">Back</a> 
Cuestiones relacionadas