Javascript Iframe innerHTML
Personne ne sait comment obtenir le code HTML d'une IFRAME, j'ai essayé plusieurs façons différentes:
document.getElementById('iframe01').contentDocument.body.innerHTML
document.frames['iframe01'].document.body.innerHTML
document.getElementById('iframe01').contentWindow.document.body.innerHTML
etc
- Pour quelqu'un d'autre qui arrive ici à partir d'une recherche sur Google, dans Firefox, au moins peut-être aussi essayer
theiFrameObject.contentDocument.body.innerHTML
. - solution fonctionne, mais l'iframe src doit être dans le même domaine que la fenêtre principale. Sinon, l'iframe à passer sa fenêtre à la société mère lors de la charge
parent.ifw = window
et puis le parent peut utiliserwindow.ifw.document
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est ce que vous voulez:
EDIT:
Je l'ai sur la bonne autorité que cela ne fonctionne pas sur Chrome et Firefox mais il fonctionne parfaitement sous IE, qui est l'endroit où je l'ai testé. Rétrospectivement, c'était une grosse erreur
Cela fonctionne:
Je comprends que ce n'est pas exactement ce qui était demandé, mais vous ne voulez pas supprimer la réponse parce que je pense qu'il a une place.
J'aime @ravz de jquery réponse ci-dessous.
Avoir quelque chose comme ce qui suit pourrait fonctionner.
Si vous jetez un oeil à JQuery, vous pouvez faire quelque chose comme:
C'est en supposant que votre iframe parent et l'enfant réside sur le même serveur, en raison de la Même La Politique De L'Origine en Javascript.
Conroy a répondu par la droite. Dans le cas où vous avez seulement besoin de trucs de corps de la balise, il suffit d'utiliser:
N'oubliez pas que vous ne pouvez pas traverser les domaines en raison de la sécurité.
Donc, si c'est le cas, vous devez utiliser JSON.
Vous pouvez utiliser le contentDocument ou contentWindow bien pour cette fin.
Voici un exemple de code.
ici,
myframe
est l'id de votre iframe.Remarque: Vous ne pouvez pas extraire le contenu d'une iframe à partir d'un crs à l'extérieur de votre domaine.
Vous pouvez obtenir le code source à partir d'un autre domaine si vous installez le ForceCORS filtre sur Firefox. Lorsque vous mettez sur ce filtre, il sera de contourner la fonctionnalité de sécurité dans le navigateur et de votre script fonctionne même si vous essayez de lire une autre page web. Par exemple, vous pouvez ouvrir FoxNews.com dans un iframe, puis lire sa source. La raison moderne web brwosers refuser cette possibilité par défaut est parce que si l'autre domaine comprend un morceau de JavaScript et que vous êtes en train de lire ça et de l'afficher sur votre page, elle peuvent contenir du code malveillant et constituent une menace pour la sécurité. Donc, chaque fois que vous êtes à l'affichage de données à partir d'un autre nom de domaine sur votre page, vous devez vous méfiez-vous de cette menace réelle et de mettre en place un moyen de filtrer tout le code JavaScript de votre texte avant de vous allez pour l'afficher. Rappelez-vous, quand une supposée morceau de texte brut contient du code enfermé à l'intérieur des balises de script, ils n'apparaissent pas lorsque vous l'affichez sur votre page, néanmoins, ils vont courir! Donc, réalise que c'est une menace.
http://www-jo.se/f.pfleger/forcecors
Cette solution fonctionne même comme iFrame. J'ai créé un script PHP qui peut obtenir tout le contenu de l'autre site, et le plus important, c'est que vous pouvez facilement appliquer votre personnalisé jQuery pour que le contenu externe. Veuillez consulter le script suivant que l'on peut obtenir tout le contenu de l'autre site web et vous pouvez ensuite appliquer votre cusom jQuery/JS ainsi. Ce contenu peut être utilisé n'importe où, à l'intérieur de tout élément ou toute la page.
Vous pouvez obtenir html d'une iframe à l'aide de ce code
iframe = document.getElementById('image');
innerHtml = iframe.contentDocument.documentElement.innerHTML