Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak pobrać adres strony w (i)frame ?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
husky83
Witam smile.gif

Mam pewien problem.
Chcę zrobić stronkę, która ma wyglądać tak: u góry ma być pewna informacja o stronie (nazwijmy ją w skrócie info), poniżej ramka (iframe, albo lepiej frame) z konkretną stroną.
info wyświetla informacje o stronie. Gdy strona się zmieni (kliknięcie na link na stronie wyświetlanej w ramce), info ma się zmienić na odpowiednie do zawartości strony (wszystkie informacje są w bazie, ale mniejsza o to). Problem w tym - w jaki sposób pobrać nowy adres strony w ramce?
  1. <frame src='str' onload='przeladuj_info()'>

i wszystko pięknie - strona się załaduje, do info załaduje się odpowiednia informacja..
Problem w tym, że gdy pobieram src z ramki, to zawsze, nawet po kliknięciu zwraca mi ten sam adres.. Czy da się to jakoś obejść? Próbowałem dostać się głębiej do ramki, jednak wtedy otrzymuję w konsoli komunikat o braku uprawnień...

w jaki sposób pobrać adres nowej strony załadowanej do ramki? I czy w ogóle istnieje jakiś sposób?
Pacio
Jesli
  1. var url = document.getElementById(idRamki).contentWindow.location;
nie dziala, to bardzo prawdopodobne, ze sie nie da tego wyciagnac z powodu same origin policy.
zegarek84
w js dla ramki "main" można na dwa sposoby:
java script:var a=frames['main'].document.location;alert(a);void(0)
java script:var a=frames['main'].location;alert(a);void(0)

sprawdzałem i działa na plemionach, gdzie napisałem kilka pół automatów w js...
Pacio
Cytat(zegarek84 @ 20.01.2010, 02:19:09 ) *
sprawdzałem i działa na plemionach, gdzie napisałem kilka pół automatów w js...

Prawda, ale tylko jesli w ramce znajduje sie strona z tej samej domeny co strona, w ktorej jest osadzona ramka.
Sprawdz:
  1.  
  2. <script type="text/javascript">
  3. function sprawdzUrl() {
  4. var a = frames['main'].document.location;
  5. alert(a);
  6. }
  7.  
  8. </head>
  9.  
  10. <iframe name="main" src="http://www.example.com" style="width: 200px; height: 200px;"></iframe>
  11. <br>
  12. <button onclick="sprawdzUrl();">Sprawdz adres ramki</button>
  13.  
  14. </body>
  15. </html>


To jest wlasnie same origin policy.
husky83
I to wszystko wyjaśnia.. Problem własnie w tym, że to poza moją domeną.. Szkoda, że jest to tak zablokowane, bo akurat pobranie adresu strony nie jest jakoś 'inwazyjne' i nie wpływa na działanie danej strony (będącej w ramce).. No ale zabezpieczają co się da i w sumie dobrze smile.gif
Więc musze sobie poradzić inaczej ;-)

Dzięki i pozdrawiam smile.gif
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.