Chcel by som manipulovať s HTML vo vnútri iframe pomocou jQuery.
Myslel som si, že to dokážem tak, že nastavím kontext funkcie jQuery na dokument iframe, niečo ako:
$(function(){ //document ready
$('some selector', frames['nameOfMyIframe'].document).doStuff()
});
Zdá sa však, že to nefunguje. Trochu kontroly mi ukázalo, že premenné v frames['nameOfMyIframe']
sú nedefinované
, pokiaľ chvíľu nepočkám, kým sa načíta iframe. Keď sa však iframe načíta, premenné nie sú prístupné (dostávam chyby typu permission denied
).
Vie niekto o nejakom spôsobe, ako to vyriešiť?
Myslím, že to, čo robíte, podlieha politike rovnakého pôvodu. To by mal byť dôvod, prečo dostávate chyby typu odmietnutie povolenia.
Musíte pripojiť udalosť k obsluhe iframe's onload a vykonať v nej js, aby ste sa uistili, že iframe dokončil načítanie pred prístupom k nemu.
$().ready(function () {
$("#iframeID").ready(function () { //The function below executes once the iframe has finished loading
$('some selector', frames['nameOfMyIframe'].document).doStuff();
});
};
Vyššie uvedené vyrieši problém 'ešte nenačítaného', ale čo sa týka oprávnení, ak v iframe načítate stránku, ktorá je z inej domény, nebudete k nej môcť pristupovať kvôli bezpečnostným obmedzeniam.