Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][jQuery] Sprawdzenie czy strona otwarta jest w ramce
Forum PHP.pl > Forum > Przedszkole
pablos83
Witajcie,

Czy istnieje w PHP jakaś funkcja (lub może ktoś z Was pisał taki program), która sprawdza czy strona jest otwarta w ramce (iframe).

Chcę zrobić coś takiego:
1. Użytkownik z wyników wyguglowania wchodzi na stronę, która powinna się otworzyć w ramce IFRAME.
2. Uruchamiany jest skrypt PHP/jQuery/JS który sprawdza czy strona jest otwarta w ramce.
3. Jeśli nie jest, to PHP header("Location:"); lub coś adekwatnego przekierowuje na stronę indexową i wczytuje odpowiednią stronę z wyników wyszukiwania do ramki IFRAME.

PS: Niestety klient, dla którego robię zlecenie nie akceptuje opcji bez ramki, ponieważ chodzi mu o ciągłe odtwarzanie muzyki w tle nawet przy przechodzeniu (przeładowaniu) na kolejną stronę. W zasadzie ramki mogłoby nie być, ale nie znalazłem innego rozsądnego sposobu na ciągłość w odtwarzaniu muzyki.
erix
Cytat
Czy istnieje w PHP jakaś funkcja (lub może ktoś z Was pisał taki program), która sprawdza czy strona jest otwarta w ramce (iframe).

Tylko JS, jak już.
kilas88
W JavaScript można to łatwo wykonać. Generalnie zarządzanie różnymi okienkami (w tym ramkami) jest proste i obsługiwane z jednego obiektu window.

Na myśl mi przyszedł jednak inny pomysł biggrin.gif wystarczy odwrócić działanie skryptu zabezpieczającego przed Clickjackingiem, tj.

Kod
<script type="text/javascript">
if (top != self) {
    top.location=self.location;
}
</script>

na

Kod
<script type="text/javascript">
if (top == self) {
    top.location = 'http://adres-strony-z-ramkami/wlasciwa-ramka';
}
</script>


Przy czym kod zamieszczasz tylko w podstronach, które muszą być uruchomione w ramkach. To wszystko winksmiley.jpg
pablos83
Zamieściłem ten skrypt w dokumencie który jest otwierany w ramce. Ale nie działa prawidłowo. Chciałem zrobić to w ten sposób, aby otworzyła się strona z indexem (w którym jest iframe), a następnie strona docelowa.
kilas88
Cytat(pablos83 @ 29.07.2010, 00:05:16 ) *
Zamieściłem ten skrypt w dokumencie który jest otwierany w ramce. Ale nie działa prawidłowo. Chciałem zrobić to w ten sposób, aby otworzyła się strona z indexem (w którym jest iframe), a następnie strona docelowa.

Co nie działa? Dałem gotowca i jeszcze nie potrafisz go zastosować w praktyce? To coś tutaj nie halo biggrin.gif wcześniej pisałem z głowy, jednak stestowałem, bo niby nie działa i działa jak należy.

index.html
  1. <!DOCTYPE html
  2. PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  5. <title>Moja strona</title>
  6. </head>
  7. <frameset cols="200,*">
  8. <frame name="spis" src="http://google.pl/" />
  9. <frame name="strona" src="podstrona.html" />
  10. </html>


podstrona.html
  1. <script type="text/javascript">
  2. if (top == self) {
  3. top.location = 'index.html';
  4. }
  5.  
  6. tekst


Proszę otworzyć podstrona.html w przeglądarce.
pablos83
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.