Je voudrais manipuler le HTML à l'intérieur d'une iframe en utilisant jQuery.
Je pensais pouvoir le faire en définissant le contexte de la fonction jQuery comme étant le document de l'iframe, quelque chose comme ça :
$(function(){ //document ready
$('some selector', frames['nameOfMyIframe'].document).doStuff()
});
Cependant, cela ne semble pas fonctionner. Un peu d'inspection m'a montré que les variables dans le fichier frames['nameOfMyIframe']
son undefined
à moins que j'attende un moment pour que l'iframe se charge. Cependant, lorsque l'iframe se charge, les variables ne sont pas accessibles (j'obtiens permission denied
-).
Quelqu'un connaît-il un moyen de contourner ce problème ?
3 votes
Que contient l'iFrame - son src est-il défini sur un autre domaine ?
0 votes
S'il s'agit d'un autre domaine, est-il encore possible d'accéder à son contenu ou d'enregistrer un événement ?
37 votes
Non, car ce serait du cross-site scripting, ce qui est interdit pour des raisons de sécurité. Ma solution a été d'utiliser un proxy : je fais passer le HTML dans le IFRAME textuellement par mon propre site, de sorte qu'il n'y a plus de cross-site du point de vue du navigateur.
0 votes
Il est plus facile d'utiliser les navigateurs croisés.
.contentWindow.document
que.document
sur leiframe
élément. Je vais suggérer la modification ci-dessus.1 votes
Un moyen est les extensions de chrome