Además de history.length en JavaScript, puede leer/escribir el nombre de la ventana.
Por lo tanto, si comprueba si tiene un nombre de carga ... debe estar en blanco en la primera carga ... si luego lo configura en "foo" ... en cada carga posterior en esa ventana ... la propiedad window.name devolverá "foo" ... a menos que abra un enlace en una nueva pestaña/ventana ... esa nueva ventana no debería tener ningún nombre establecido.
(a menos que, por supuesto, se abre una ventana emergente a través de window.open (url, nombre, características), lo que le permite pre-configurar el nombre)
<script>
if(window.name == ''){
//first load (or Nth load in a new Tab/Window)
if(!SOME_VALUE_SET_FOR_2ND_TO_NTH_LOADS){
//set name so we can catch new Tab/Window
window.name = 'myWinName';
} else {
//we have a new Tab/Window (or something funky)
alert('What?! One window not cool enough for ya?\n' +
'Calling the InterWeb Police!');
}
} else if(window.name == 'myWinName'){
//2nd-Nth load
document.title = 'All is well... we think';
}
</script>
Advertencias:
- Si su página se carga inicialmente en una ventana/marco que ya tenía un nombre ...las cosas se volverán extravagantes
- Si su página tiene iframes (nombrados) y usted tiene enlaces dirigidos a esos iframes, hay un error en IE7/8 por el cual cuando el usuario abre esos enlaces en una nueva pestaña/ventana, la nueva pestaña/ventana "hereden" el nombre del marco flotante que fue dirigido originalmente (error muy extraño sin solución alguna vez de esperar)
También puede consultar history.previous ... –
@Jason: Obtengo errores de permiso en Firefox cuando intento ver history.previous. – RichieHindle
@RichieHindle: hmmm ... Estaba tratando de poner mi dedo en eso ... pero sí ... es por eso que apesta ... –