texte - récupérer le contenu d'une div en javascript




Déchargement/Suppression de contenu d'un iFrame (8)

$ ('# frameID'). contentWindow.document.body.innerHTML = '';

Comme pour tout iframe, cela ne fonctionne que si vous êtes sur le même domaine.

Y a-t-il un moyen de décharger une page chargée dans un iframe? Je ne veux pas remplacer l'iframe src par une page vierge si possible. Je cherche fondamentalement quelque chose qui fera quelque chose comme ceci $('#frameID').attr("src",""); sauf que le code ne semble pas effacer la page précédemment chargée.

Existe-t-il une fonction de "unload" que je peux appeler et qui réinitialisera l’iframe afin qu’il ne contienne aucun contenu?


Cela a fonctionné pour moi, tout effacé dans le tag iframe; corps, tête, html et tout:

$("iframe").contents().empty();

La suppression et la recréation de l'iframe est la solution la plus intelligente (pas de délit envers les autres réponses).

En supprimant uniquement le innerHTML de l'iframe, vous ne videz pas les variables stockées, les eventListeners liés, etc.

Soyez prudent avec ceci, cela pourrait causer beaucoup de problèmes (comme les fuites de mémoire, les déclencheurs multiples du même événement, etc.).


Les autres solutions utilisent innerHTML , qui ne fonctionnera pas toujours dans XHTML. Ils effacent également document.body (tout ce qui se trouve dans <head> est toujours présent). Voici une solution qui utilise le DOM:

var frame = document.getElementById("myFrame"),
frameDoc = frame.contentDocument || frame.contentWindow.document;
frameDoc.removeChild(frameDoc.documentElement);

Cette solution utilise innerHTML :

var frame = document.getElementById("myFrame"),
frameDoc = frame.contentDocument || frame.contentWindow.document;
frameDoc.documentElement.innerHTML = "";

Si vous aviez déjà chargé du contenu en définissant la propriété src de l'iframe, vous ne pouvez pas vider le contenu car il s'agit d'une violation des scripts intersites.

Vous pouvez ensuite simplement définir la propriété src sur '' ce qui fera que le navigateur ignore tout le contenu.

$('iframe').prop('src', '');

Tout d'abord, récupérez le document du cadre:

var frame = $('#frameId').get(0);
var frameDoc = frame.contentDocument || frame.contentWindow.document;

Ensuite, videz-le:

frameDoc.getElementsByTagName('body')[0].innerHTML = "";

Je pense que cela devrait fonctionner aussi:

$('body', frameDoc).html("");

Maintenant, vous voudrez peut-être faire quelque chose avec des scripts qui pourraient être chargés dans la tête, mais cela devrait vous permettre de démarrer.


$("#frameId").contents().find("div#SomeDIVinsideFrame").remove(); // removes some div content inside iframe

$("#FrameId").remove(); // removes frame

avait le même problème pour montrer des nouvelles iframe sur http://www.livepage.info


function getContentFromIframe(iFrameName)
{

var myIFrame = document.getElementById(iFrameName);
var content = myIFrame.contentWindow.document.body.innerHTML;

//Do whatever you need with the content    

}

ça va certainement marcher !!!!!!!!!!!!!!!!





iframe