2013-03-22 14 views
5

Jest to sytuacja: Mam na tej samej domenie, iframe wewnątrz mojej strony internetowej. Obecnie nie mam natychmiastowego dostępu do kodu iframe od czasu wdrożenia.Zapobieganie iframe przekierowanie strony nadrzędnej

po załadowaniu elementu iframe, wykryty kod wykrywa coś, co powoduje przekierowanie na stronie nadrzędnej. Tymczasowo chcę go usunąć. Wiem, że mogę używać onbeforeload, ale ostrzeżenie będzie wyświetlane za każdym razem, gdy użytkownik kliknie na dowolny link.

Czy istnieje sposób, w jaki mogę wykryć przekierowanie? dzieje się to zanim pełna strona główna zostanie w pełni załadowana.

Dużo googlowałem, ale nadal nie mam działającego rozwiązania.

Dzięki!

+0

Nie wiem, czy działa, ale można wypróbować nowy atrybut HTML5 "sandbox", http: // webdesign .about.com/od/html5tags/p/sandbox-attribute.htm – aNewStart847

+0

http://stackoverflow.com/questions/369498/how-to-prevent-iframe-from-redirecting-top-level-window może mieć pomocne rzeczy, jeśli jeszcze tego nie widziałeś. –

Odpowiedz

0

Użyj zdarzenia onbeforeunload, aby poprosić użytkownika o opuszczenie tej strony lub pozostanie na niej.

<script> 
    window.onbeforeunload = function(){ 
     return false; // This will stop the redirecting. 
    } 
</script> 

Moja odpowiedź jest na podstawie odpowiedzi z odpowiedziami w Stackoverflow !!!

+2

Zawołano w oryginalnym poście jako coś, czego OP nie chciał –

-3

To trochę brzydki hack, ale tutaj jest coś, co może zadziałać (przyznaję, że nie wiem zbyt wiele na temat pracy iframes). Złap stronę, którą chcesz umieścić w elemencie iframe za pomocą javascript. Użyj javascript do przeanalizowania go, aż dojdziesz do kodu przekierowania i usuń kod przekierowania. Następnie umieść wynik w elemencie iframe. W najlepszym razie brzydki, ale wygląda na to, że to może zadziałać.

2

Spróbuj tego:

<iframe align="left" src="http://stackoverflow.com/" sandbox=""></iframe>' 
Powiązane problemy