2012-08-27 26 views
5

Mi idea de lo que intento hacer es Cuando abro un sitio web en una pestaña de un explorador de Internet y hago clic en un enlace, debería abrir un nuevo pestaña en el mismo navegador con una página en pdf init ... la página en pdf tiene muchos enlaces que, si intenta hacer clic en alguno de ellos, deberían llevarlo de regreso a la pestaña anterior donde logró abrir el pdf y mantenerlo Alternar entre esas dos pestañas solo Espero que la idea esté clara. Estoy tratando de hacer esto usando html y javascript ... esto es lo que escribí pero todavía me falta mucho aquí. Gracias de antemano por cualquier ayuda proporcionadaAlternar entre las mismas dos pestañas solo en un navegador usando javascript y html

esta pieza aquí almuerza otro instante en otra ventana

<html> 
<head> 
<script> 
function son() 
{ 

myWindow=window.open('','','width=500,height=500'); 
myWindow.document.write(" SON !"); 
myWindow.focus(); 
myWindow.opener.document.write("<p> DAD !</p>"); 
} 
</script> 
</head> 
<body> 

<input type="button" value="Open " onclick="son()" /> 

</body> 
</html> 

Este archivo es donde tengo el archivo PDF incorporado.

<object data="Test.pdf" type="application/pdf" width="100%" height="100%"> 

<p>It appears you don't have a PDF plugin for this browser. 
you can <a href="Test.pdf">click here to 
download the PDF file.</a></p> 

</object> 

gracias de nuevo

+0

No puede forzar el cambio a una pestaña o ventana diferente a través de JavaScript. – zzzzBov

+0

Si la página abierta fuera una página web, posiblemente podría hacer algo como esto con 'postMessage' (pero incluso eso no cambiaría las pestañas), pero sospecho que no será posible con un PDF. – apsillers

+0

@zzzzBov incluso si trato de poner el pdf en un iframe – ALG

Respuesta

1

JavaScript no tiene API para controlar pestañas. Por lo tanto, no puedes hacerlo.

Puede abrir ventanas, pero no puede controlar si se trata de una pestaña o ventana.

+0

¿se puede hacer si pones el archivo pdf en un marco a – ALG

+0

¿Cómo cambiar algo en el marco el hecho de que JavaScript no puede controlar las pestañas? ¿Puedes nombrar una función nativa de JavaScript para cambiar las pestañas? ¿Te refieres a las pestañas o pestañas del navegador que creas dentro de una página? – Joe

+0

Fichas del navegador @joe – ALG

5

En los viejos tiempos, se podía usar el método focus de una ventana para poner una ventana/pestaña en primer plano. Sin embargo, el abuso (principalmente en forma de ventanas emergentes de los anunciantes) ha provocado que los navegadores restrinjan o deshabiliten esa funcionalidad.

Si ignoramos la parte de PDF, conceptualmente, esta es una solicitud muy simple. En primer lugar, abrir una ventana y se aferran a su referencia:

var pop = window.open('page.html'); // opens in new tab on most browsers 

En la página secundaria, cambiar de nuevo a la original era simple:

window.opener.focus(); // no longer works in most modern browsers 

Y desde la primera página, a cambiar de nuevo:

pop.focus(); // might work 

En my test, no pude obtener IE 9 o Chrome 21 para volver a la pestaña de apertura. En Chrome, pude abrir la segunda página, volver manualmente a la pestaña original y llamar al pop.focus() volvió a enfocar la segunda pestaña. (IE no hizo nada.) Pude forzar a Chrome a volver a la página de inicio llamando al window.opener.alert('...'); desde la página secundaria, pero eso es un hack feo.

Parece que no podrá realizar esto, al menos no de manera confiable.

No estoy seguro exactamente de lo que intenta lograr (¿una TOC?), Pero ¿ha pensado en abrir dos ventanas? Abra uno con sus enlaces que cubre el lado izquierdo de la pantalla, y otro en la otra mitad con el PDF.

+0

¿me puede dar un ejemplo simple de un TOC, para que pueda absorber lo que está tratando de explicarme, sería una gran ayuda gracias de antemano – ALG

+0

Josh mencionó un punto sobre el "abridor" , por lo que no funciona en absoluto, o es solo el abridor. ¿Foco? gracias de nuevo – ALG

+0

TOC = Table of Contents. 'window.opener' funciona (apunta al objeto' window' de la ventana que abrió la ventana actual), pero su método 'focus' falla silenciosamente. – josh3736

1

Una posibilidad alternativa consiste en NO abrir una segunda ventana o pestaña. Si abre otra página/reemplazo en la ventana o pestaña actual, , puede usar el objeto Historial para alternar entre las dos páginas.

history.go(-1); //takes you back to previous page 
history.go(1); //takes you forward to the page from which you went back. 
Cuestiones relacionadas