6
votes

Lecture de contenu iframe dans la charge iframe

Je veux juste apprendre à lire le contenu de l'iframe dans l'événement Ofload of Iframe et à écrire son contenu à la page principale? Merci ..


1 commentaires

Il y a un moyen de le faire, mais c'est Klugey et oblige l'Iframe à rendre une page que vous produisez / avez le contrôle. Le contenu du rendu IFrame est-il contrôlé?


5 Réponses :


2
votes
jQuery("#xiframe").load(function()
{
  var doc = null;
  try{
    doc = this.document || this.contentDocument || this.contentWindow && xiframe.contentWindow.document || null;
  } catch(err) { 
    alert('error: ' + err.description); 
  }

  try {             
   if(!doc) {
     alert('error');
     return false;
   }
  } catch(err) {
    alert('error: ' + err.description); 
    return false;
  }

  alert(String(jQuery(doc.body).html());
}

2 commentaires

Merci mais en fait, le principal problème est de déterminer la charge de la page complète pour obtenir le contenu et écrire dans le contenu de la page principale.


Contenu " ... ... " ou " ... "?



0
votes
  • Document parent (la page sur laquelle l'IFrame est affichée)
  • Document enfant (la page affichée à l'intérieur de l'iframe)

    Si ces deux documents sont dans le même domaine, vous pouvez utiliser l'objet Window.parent.document dans le gestionnaire d'événements sur le document du document enfant pour accéder au document parent.


0 commentaires

7
votes

J'ai eu du mal à la même journée la plus écoulée. Il semble que vous accédez à l'iframe. Si vous utilisez document.getelementByID () code> Vous obtenez un objet iframe, qui n'a pas de Overload code> événement. Toutefois, si vous accédez à travers window.frames [] code> tableau, par exemple xxx pré>

Vous obtenez un objet de fenêtre, qui dispose d'un événement surcharger. P> (c.-à-d. Utilise l'attribut ID de trame, mais FF utilise l'attribut de nom. Alors utilisez les deux et faites les mêmes) em> p>

Vous pouvez ensuite attribuer P>

iframeWindow.onload=function(){iframeContent=iframeWindow.document.body.innerHTML;};


2 commentaires

Je l'ai fait mais ça n'a pas marché pour moi. Pourriez-vous s'il vous plaît envoyez-moi votre exemple si cela ne vous dérange pas. Merci.


Fonction Redisplay () {var Content = top.frames ['Fetch']. Document.body.innerhtml; top.frames ["Affichage"]. Document.body.innerhtml = Contenu; }

Articles qui pourrait vous intéresser :

Impossible d'importer le module "@ angular / material"
Interaction profonde avec break and catch
Utilisation de node.js comment renommer tous les fichiers d'un dossier
Google Chrome Uncaught (promis) DOMException lors de la lecture AUDIO