2012-08-27 13 views
5

Mój pomysł na to, co próbuję zrobić, to Kiedy otwieram stronę internetową na jednej zakładce przeglądarki internetowej i klikam na link, powinien otworzyć się nowy zakładka w tej samej przeglądarce z init strony pdf ... strona pdf ma wiele linków, które jeśli spróbujesz kliknąć na którąkolwiek z nich powinieneś wrócić do starej zakładki, gdzie udało ci się zjeść lunch i otworzyć plik pdf przełączanie tylko między tymi dwiema kartami Mam nadzieję, że pomysł jest jasny .. próbuję to zrobić za pomocą html i javascript ... to co napisałem, ale nadal dużo tu brakuje. Dzięki z góry za wszelką pomoc pod warunkiemPrzełączanie między tymi samymi dwiema zakładkami tylko w przeglądarce przy użyciu javascript i html

ten kawałek tutaj obiady inną chwilę w innym oknie znowu

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

Ten plik jest gdzie mam plik pdf wbudowany.

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

dzięki

+0

Nie można wymusić przełączenia na inną kartę lub okno za pomocą JavaScript. – zzzzBov

+0

Jeśli otwarta strona była stroną sieciową, możesz zrobić coś takiego z 'postMessage' (ale nawet to by nie zmieniło kart), ale podejrzewam, że nie będzie to możliwe z plikiem PDF. – apsillers

+0

@zzzzBov, nawet jeśli próbuję umieścić pdf w iframe – ALG

Odpowiedz

1

JavaScript nie ma interfejsów API do kontrolowania kart. Dlatego nie możesz tego zrobić.

Możesz otworzyć okna, ale nie możesz kontrolować, czy będzie to karta czy okno.

+0

można to zrobić, jeśli umieścisz plik PDF w ramce – ALG

+0

Jak umieszczenie czegoś w ramce zmieni fakt, że JavaScript nie może sterować zakładkami? Czy potrafisz wymienić jedną natywną funkcję JavaScript do przełączania kart? Czy odnosisz się do zakładek lub zakładek przeglądarki na stronie? – Joe

+0

Zakładki przeglądarki @joe – ALG

5

W dawnych czasach można było użyć metody okna focus, aby ustawić okno/kartę na pierwszym planie. Jednak nadużycia (głównie w postaci wyskakujących okienek reklamodawców) spowodowały, że przeglądarki ograniczyły lub dezaktywowały tę funkcjonalność.

Jeśli zignorujemy część PDF, to jest to bardzo proste żądanie. Po pierwsze, otworzyć okno i trzymaj się jej odniesienia:

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

na stronie wtórnej, przełączenie z powrotem do oryginału była prosta:

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

I od pierwszej strony, aby przełączyć się z powrotem:

pop.focus(); // might work 

W wersji my test nie można pobrać programu IE 9 lub Chrome 21, aby przełączyć się z powrotem do karty Otwieracz. W przeglądarce Chrome mogłem otworzyć drugą stronę, ręcznie przejść z powrotem do oryginalnej karty, a wywołanie pop.focus() spowodowało ponowne ustawienie drugiej karty. (IE nie zrobił nic.) Byłem w stanie zmusić Chrome do powrotu na stronę początkową, dzwoniąc pod numer window.opener.alert('...');, ale to brzydki hack.

Wygląda więc na to, że nie będziesz w stanie tego ściągnąć, przynajmniej niezawodnie.

Nie jestem pewien, co dokładnie chcesz osiągnąć (TWO?), Ale czy myślałeś o otwarciu dwóch okien? Otwórz jeden z twoimi linkami, który obejmuje lewą stronę ekranu, a drugi z drugiej strony z plikiem PDF.

+0

możesz podać mi prosty przykład spisu treści, abym mógł zaabsorbować to, co próbujesz mi wytłumaczyć, byłaby to wielka pomoc z góry dzięki – ALG

+0

Josh wspomniał o punkcie o "otwieraczu" , więc to nie działa w ogóle, czy jest to tylko opener.focus? jeszcze raz dziękuję – ALG

+0

TOC = Spis treści. działa 'window.opener' (wskazuje na obiekt' window' okna, które otworzyło bieżące okno), ale jego metoda 'focus' nie działa po cichu. – josh3736

1

Jedna z alternatywnych możliwości polega na NIE otwieraniu drugiego okna lub karty. Po otwarciu kolejnej/zastępującej stronę w bieżącym oknie lub na karcie, można użyć obiektu Historia do przełączania się między dwiema stronami.

history.go(-1); //takes you back to previous page 
history.go(1); //takes you forward to the page from which you went back. 
Powiązane problemy