Chciałbym użyć konsoli programisty Chrome do przeglądania zmiennych i elementów DOM w mojej aplikacji, ale aplikacja istnieje wewnątrz iframe
(ponieważ jest to aplikacja OpenSocial).
Tak więc sytuacja wygląda następująco:
<containing site>
<iframe id='foo' src='different domain'>
... my app ...
</iframe>
</containing site>
Czy jest jakiś sposób na dostęp do rzeczy, które się w tym dzieje iframe
z konsoli programisty? Jeśli spróbuję to zrobić document.getElementById("foo").something
, to nie działa, prawdopodobnie dlatego, że iframe
jest w innej domenie.
Nie mogę otworzyć iframe
zawartości w nowej karcie, ponieważ iframe
musi również móc porozmawiać z witryną zawierającą.
źródło
Obecnie ocena w konsoli jest wykonywana w kontekście głównej ramki na stronie i jest zgodna z tą samą polityką krzyżowania, co sama ramka główna. Oznacza to, że nie można uzyskać dostępu do elementów w ramce iframe, chyba że główna rama może. Nadal możesz jednak ustawiać punkty przerwania i debugować kod za pomocą panelu Skrypty.
Aktualizacja: To już nie jest prawda. Zobacz odpowiedź Metagraphera .
źródło
W moim dość złożonym scenariuszu zaakceptowana odpowiedź, jak to zrobić w Chrome, nie działa dla mnie. Zamiast tego możesz wypróbować debuger Firefoksa (część narzędzi programistycznych Firefoksa), który pokazuje wszystkie „Źródła”, w tym te, które są częścią iFrame
źródło
Sources
Gdy iFrame wskazuje na twoją stronę w następujący sposób:
Możesz uzyskać dostęp do iFrame DOM za pomocą tego rodzaju rzeczy.
źródło