2012-08-27 9 views
5

La mia idea di cosa sto cercando di fare è Quando apro un sito Web in una scheda di un broweser di Internet Explorer e clicco su un link dovrebbe aprire una nuova scheda nello stesso browser con una pagina pdf init ... la pagina pdf ha un sacco di link che se si tenta di fare clic su uno di essi dovrebbero tornare alla vecchia scheda in cui sei riuscito a pranzo aprire il pdf da e mantenere passare tra queste due schede solo Spero che l'idea sia chiara .. sto provando a farlo usando html e javascript ... questo è ciò che ho scritto ma mi manca ancora molto qui. Grazie in anticipo per qualsiasi aiuto fornitoPassaggio tra le stesse due schede solo in un browser utilizzando javascript e html

questo pezzo qui pranzi di un altro istante in un'altra finestra

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

Questo file è dove ho il file pdf costruito.

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

grazie ancora

+0

Non è possibile forzare un passaggio a un'altra scheda o finestra tramite JavaScript. – zzzzBov

+0

Se la pagina aperta fosse una pagina Web, potreste fare qualcosa del genere con 'postMessage' (ma anche questo non cambierebbe le schede), ma sospetto che non sia possibile con un PDF. – apsillers

+0

@zzzzBov anche se provo a mettere il pdf in un iframe – ALG

risposta

1

JavaScript non ha API per il controllo delle schede. Pertanto, non puoi farlo.

È possibile aprire finestre, ma non è possibile controllare se si tratta di una scheda o di una finestra.

+0

può essere fatto se metti il ​​file pdf in un frame – ALG

+0

Come mettere qualcosa nel frame cambia il fatto che JavaScript non può controllare le schede? Puoi nominare una funzione JavaScript nativa per cambiare scheda? Si riferisce alle schede o alle schede del browser eseguite all'interno di una pagina? – Joe

+0

schede del browser @joe – ALG

5

In passato era possibile utilizzare il metodo focus di una finestra per portare una finestra/scheda in primo piano. Tuttavia, l'abuso (principalmente sotto forma di finestre popup degli inserzionisti) ha portato i browser a limitare o disabilitare tale funzionalità.

Se ignoriamo la parte PDF, concettualmente, questa è una richiesta molto semplice. In primo luogo, aprire una finestra e mantenere la propria riferimento:

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

Nella pagina secondaria, tornando alla originale era semplice:

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

E dalla prima pagina, per passare indietro:

pop.focus(); // might work 

In my test, non ho potuto ottenere IE 9 o Chrome 21 per tornare alla scheda di apertura. In Chrome, ho potuto aprire la seconda pagina, tornare manualmente alla scheda originale e chiamare pop.focus() ha riportato la seconda scheda in primo piano. (IE non ha fatto nulla.) Sono stato in grado di forzare Chrome alla pagina iniziale chiamando lo window.opener.alert('...'); dalla pagina secondaria, ma è un brutto scherzo.

Quindi sembra che non sarà in grado di farlo, almeno non in modo affidabile.

Non sono sicuro di quello che stai cercando di realizzare (un sommario?), Ma hai pensato di aprire due finestre? Apri uno con i tuoi collegamenti che copre il lato sinistro dello schermo e un altro sull'altro lato con il PDF.

+0

puoi darmi un semplice esempio di un sommario, quindi posso assorbire quello che stai cercando di spiegarmi, sarebbe un grande aiuto grazie in anticipo – ALG

+0

Josh hai menzionato un punto sull'open " , quindi non funziona affatto, o è solo l'apri.focus? grazie ancora – ALG

+0

TOC = Sommario. 'window.opener' funziona (punta all'oggetto' window' della finestra che ha aperto la finestra corrente), ma il suo metodo 'focus' fallisce silenziosamente. – josh3736

1

Una possibilità alternativa comporta NON aprire una seconda finestra o scheda. Se si apre un'altra/sostituzione di una pagina nella finestra o scheda corrente, è possibile utilizzare l'oggetto Cronologia per passare da una pagina all'altra.

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