Lire IFrame contenu à l'aide de JavaScript
Ok, C'est ma première fois de traiter sérieusement avec les IFrames et je ne peux pas l'air de comprendre un peu les choses:
D'abord l'exemple de code, je suis en train de tester avec:
<head>
<script type="text/javascript">
function init(){
console.log("IFrame content: " + window.frames['i1'].document.getElementsByTagName('body')[0].innerHTML);
}
</script>
</head>
<body onload="init();">
<iframe name="i1" src="foo.txt"/>
</body>
le fichier "foo.txt" ressemble à ceci:
sample text file
Questions:
1) L'iframe semble se comporter comme un document HTML et le fichier texte est en fait une partie du corps à la place. Pourquoi ? Est-il une règle pour un IFrame à un document HTML. Il n'est pas possible pour le contenu d'une iframe pour être juste en texte brut ??
2) Le contenu du fichier s'amalgament à l'intérieur d'un pré balise pour une raison quelconque. Pourquoi est-ce donc ? Est-ce toujours le cas?
3) Ma méthode d'accès dans le javascript fonctionne mais est-il une autre alternative? [js natif solutions s'il vous plait] Si le contenu est enveloppé dans un pré balise de toujours, puis je fait la recherche à l'intérieur de la pré étiquette plutôt que la recherche de la innerHTML
OriginalL'auteur Rajat | 2010-05-05
Vous devez vous connecter pour publier un commentaire.
innerHTML
ne pas retour de la exacte contenu d'un élément, c'est un non-méthode normalisée qui renvoie le code HTML qui est équivalent pour le contenu réel, et en HTML, l'équivalent de texte brut est<pre>foo...</pre>
.Vous pourriez avoir plus de chance avec la innerText propriété..
OriginalL'auteur Sean Kinsey
J'ai été un moment difficile l'obtention du contenu d'un fichier TXT qui était le src de l'iframe.
C'est ma solution:
OriginalL'auteur keldonrush
vous utilisez les DOM/JS interface. cela ne fonctionnera que si le contenu est traité comme du HTML/XML.
OriginalL'auteur Dormilich
C'est la manière dont les navigateurs traiter des fichiers texte, parce qu'elles ont "meilleur look" de cette façon (pas seulement à l'intérieur de l'iframe). Les navigateurs peuvent traiter beaucoup de types de fichier, et il est déraisonnable de s'attendre à tout montrer sous forme brute, non? Parce que les pages du navigateur (et les iframes) sont sur la présentation, personne n'utilise des iframes pour la configuration ou de lire des données brutes à partir du disque.
Si vous voulez avoir le plein contrôle sur la présentation, il suffit de changer de type de fichier html et il sera traité comme du html. (en particulier, il permettra de résoudre le " pré " problème)
Aura cette réponse à vos questions?
Pouvez-vous expliquer qu'est-ce que vous essayez de faire, alors?
OriginalL'auteur Nikita Rybak