Otrzymuję poniższy błąd, gdy próbuję ustawić wartość skrótu na nadrzędny adres URL z elementu iframe, który zawiera inny adres URL domeny:
Niebezpieczna próba uzyskania dostępu do ramki z adresem URL „URL1” z ramki z adresem URL „URL2” przez niezabezpieczony kod JavaScript. Domeny, protokoły i porty muszą być zgodne.
Jak mogę rozwiązać ten problem?
Odpowiedzi:
Z dokumentu podrzędnego innego pochodzenia nie masz dostępu do właściwości okna górnego
location.hash
, ale możesz ustawićlocation
samą właściwość.Oznacza to, że biorąc pod uwagę, że górna lokalizacja okna jest
http://example.com/page/
, zamiast robićmusisz znać lokalizację rodziców i to zrobić
Ponieważ zasób nie jest nawigowany, będzie to działać zgodnie z oczekiwaniami, zmieniając tylko część z krzyżykiem adresu URL.
Jeśli używasz tego do komunikacji między domenami, polecam zamiast tego użyć easyXDM .
źródło
Crossframe-Scripting nie jest możliwy, gdy dwie ramki mają różne domeny -> Security.
Zobacz: http://javascript.about.com/od/reference/a/frame3.htm
Teraz, aby odpowiedzieć na twoje pytanie: nie ma rozwiązania lub obejścia, po prostu powinieneś sprawdzić projekt swojej witryny, dlaczego muszą istnieć dwie ramki z różnych domen, które zmieniają adres URL drugiej.
źródło
Otrzymałem ten sam komunikat o błędzie, gdy próbowałem sfazować domenę dla iframe.src.
Dla mnie odpowiedzią była zmiana iframe.src na adres URL w SAMEJ domenie, ale w rzeczywistości był to przekierowanie strony HTML do żądanej domeny. Druga domena pojawiła się wtedy w moim iframe bez żadnych błędów.
Działał jak urok. :)
źródło
Rozwiązaniem mogłoby być użycie lokalnego pliku, który pobiera zdalną zawartość
remoteInclude.php
HTML
źródło
Zauważyłem, że użycie wersji XFBML przycisku „Lubię to” na Facebooku zamiast wersji HTML5 rozwiązało ten problem. Dodaj poniższy kod w miejscu, w którym ma się pojawić przycisk:
Następnie dodaj to do swojego tagu HTML:
źródło
Problem polega na tym, że nawet jeśli utworzysz serwer proxy lub załadujesz zawartość i wstrzykniesz ją tak, jakby była lokalna, wszelkie skrypty, które definiuje ta zawartość, zostaną załadowane z innej domeny i spowodują problemy między domenami.
źródło