Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: $('#iframeID').contentDocument dostęp zabroniony dla ramki z zewnętrznego adresu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
billy235
Witam,
odgrzebuje taki nieco stary problem, który jest tutaj: http://forum.php.pl/index.php?showtopic=113949 Ale wydaje mi się, że chciałbym go nieco inaczej opisać dlatego zadam pytanie samodzielnie na nowo.

Chodzi o wpływanie na zawartość ramki poprzez JavaScript

jest to możliwe na przykład w taki sposób:
  1. </head>
  2. <script src="http://code.jquery.com/jquery-latest.js"></script>
  3. </head>
  4. <iframe id='iframeID' src="zawartoscRamki.html"> </iframe>
  5.  
  6. jQuery( function() {
  7. $('#iframeID').load( function(){
  8. console.log($(this.contentDocument).find("body").html());
  9. });
  10. });
  11. </body>
  12. </html>


Wszystko jest dobrze dopóki zamiast
  1. src="zawartoscRamki.html"

nie damy jakiegoś zewnętrznego adresu np.
  1. src="http://www.php.pl"


Firefox zwraca wtedy błąd: Error: Permission denied to access property 'nodeType'

Doczytałem coś nie coś w zagranicznych źródłach i to co zrozumiałem to, że jest to zabezpieczenie i po prostu nie da się tego obejść. Potrzebuje tego wyświetlania dodatkowych informacji na stronie która będzie badana przez użytkownika. Tak jak robi to Google Analytics w Analytics w treści strony

W moim przypadku rozwiązanie z użyciem php będzie zbyt problematyczne i tego wolał bym uniknąć.

Pozdrawiam i proszę o pomoc.
erix
Cytat
Doczytałem coś nie coś w zagranicznych źródłach i to co zrozumiałem to, że jest to zabezpieczenie i po prostu nie da się tego obejść.

Jeśli zawartość w ramce jest w innej domenie niż Twoja, to tego nie obejdziesz. Nie, nie da się.

Cytat
Tak jak robi to Google Analytics w Analytics w treści strony

Analytics jest dołączane do właściwej strony, przez ramki nic nie robi.
billy235
Google Analitics posiada usługę o nazwie: Analytics w treści strony
Ona pozwala wizualizować np w jakie linki na stronie ludzie klikają i wyświetla to nad witryną wczytywaną przez ramkę.
Niestety podejrzewam, że używają do tego jakiś przetworzeń serwerowych i najpierw pobierają stronę potem ja parsują i dopiero potem powstaje ramka już z pliku w lokalnym adresie.

w php można zrobić to za pomocą:


Ale to dostarcza sporo komplikacji bo np klikanie w link lub wysłanie formularza dostarczyło by sporo dodatkowych problemów no i oczywiście jest to dość wolne.

Wolał bym bez php samo JavaScript
Czy ktoś ma pomysł jakiś inny ewentualnie questionmark.gif
erix
Obawiam się, że tego nie obejdziesz bez zewnętrznych rozwiązań:
  • server-side
  • applet w javie
  • animacja flash
  • ew. hybrydy w stylu cross-domain XHR
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.