Jakiego kodu JavaScript potrzebuję do przekierowania okna nadrzędnego z ramki iframe?
Chcę, aby kliknęli hiperłącze, które za pomocą JavaScript lub innej metody przekieruje okno nadrzędne do nowego adresu URL.
Jakiego kodu JavaScript potrzebuję do przekierowania okna nadrzędnego z ramki iframe?
Chcę, aby kliknęli hiperłącze, które za pomocą JavaScript lub innej metody przekieruje okno nadrzędne do nowego adresu URL.
Odpowiedzi:
window.top.location.href = "http://www.example.com";
Jak wspomniano wcześniej, przekieruje nadrzędny element iframe.
sandbox
” - developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe że sandbox
zapobiega atrybutów obsługa JavaScript podejmowanie pewnych działań w ramach iframe oparte na danej białej liście dozwolonych działań. allow-top-navigation
Nieruchomość jest jednym z działań, jakie można włączyć w białej listy, co pozwala ten kod do pracy. Jeśli sandbox
atrybut jest abscent, wszystkie akcje są dozwolone. Jeśli jest obecny i pusty ciąg znaków, wszystkie działania są odrzucane.
Odkryłem, że to <a href="..." target="_top">link</a>
też działa
window.top.location.href = "http://example.com";
window.top
odnosi się do obiektu okna strony u góry hierarchii ramek.
lub alternatywą jest następująca (przy użyciu obiektu dokumentu)
parent.document.location.href = "http://example.com";
parent.location.href = ...
. developer.mozilla.org/en/document.location
target="_parent"
działało świetnie dla mnie. łatwe i bezproblemowe!
@MIP ma rację, ale w nowszych wersjach Safari musisz dodać atrybut piaskownicy (HTML5), aby umożliwić przekierowanie do iFrame. Istnieje kilka konkretnych wartości, które można dodać ze spacją między nimi.
Odniesienie (musisz przewinąć): https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
Dawny:
<iframe sandbox="allow-top-navigation" src="http://google.com/"></iframe>
sandbox
atrybut włącza dodatkowy zestaw ograniczeń dla zawartości w <iframe>
. Wartość sandbox
właściwości usuwa określone ograniczenia. Uważaj więc, korzystając z tej funkcji. w3schools.com/tags/att_iframe_sandbox.asp
Jeśli chcesz przekierować do innej domeny bez konieczności robienia czegokolwiek, możesz użyć linku z tą właściwością:
target="_parent"
jak powiedziano wcześniej, a następnie użyj:
document.getElementById('link').click();
aby automatycznie przekierowywał.
Przykład:
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<a id="link" target="_parent" href="outsideDomain.html"></a>
<script type="text/javascript">
document.getElementById('link').click();
</script>
</body>
</html>
Uwaga: Polecenie click javascript musi pojawić się po zadeklarowaniu łącza.
Spróbuj użyć
window.parent.window.location.href = 'http://google.com'
parent.location = 'url'
window.top.location.href = 'index.html';
Spowoduje to przekierowanie głównego okna do strony indeksu. Dzięki
Musimy użyć window.top.location.href, aby przekierować okno nadrzędne z akcji iframe.
Przekieruj iframe w oknie nadrzędnym przez iframe w tym samym rodzicu:
window.parent.document.getElementById("content").src = "content.aspx?id=12";
IFrame
. Ponieważ zaakceptowana odpowiedź dotyczy górnego okna, proponuję nieco zmienić swoje pytanie.