Zagnieżdżone ramki iframe, AKA Iframe Inception
Korzystając z jQuery próbuję uzyskać dostęp do div id = "element".
<body>
<iframe id="uploads">
<iframe>
<div id="element">...</div>
</iframe>
</iframe>
</body>
Wszystkie ramki iframe znajdują się w tej samej domenie bez problemów z www / non-www.
Pomyślnie wybrałem elementy w pierwszej ramce iframe, ale nie w drugiej zagnieżdżonej ramce iframe.
Próbowałem kilku rzeczy, jest to najnowsza (i dość desperacka próba).
var iframe = jQuery('#upload').contents();
var iframeInner = jQuery(iframe).find('iframe').contents();
var iframeContent = jQuery(iframeInner).contents().find('#element');
// iframeContent is null
Edytuj: Aby wykluczyć problem z czasem, użyłem zdarzenia kliknięcia i odczekałem chwilę.
jQuery().click(function(){
var iframe = jQuery('#upload').contents().find('iframe');
console.log(iframe.find('#element')); // [] null
});
Jakieś pomysły? Dzięki.
Aktualizacja: mogę wybrać drugą ramkę iframe w ten sposób ...
var iframe = jQuery('#upload').contents().find('iframe');
Wydaje się, że problem polega na tym, że src jest puste, ponieważ iframe jest generowane za pomocą javascript. Zatem element iframe jest wybrany, ale długość treści wynosi 0.