11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour, je voudrais afficher le nombre de liens contenu dans une iframe, mais je n'y arrive pas : ça m'affiche "0" à chaque fois. voici mon code


<IFRAME id='monIframe' name='monIframe' src="http://forum.alsacreations.com/forum.php" width=100% height=600 scrolling=auto frameborder=1 > </IFRAME>

<script type="text/javascript">
alert(window.frames["monIframe"].document.getElementsByTagName("a").length);
</script>


Quelqu'un aurait-il une idée?

Merci
Modifié par netoale (20 Jan 2011 - 16:02)
Bonjour et bienvenue sur ce forum.

Plusieurs choses:

- Juste comme ça en passant: un code HTML est plus simple à lire s'il est stylistiquement cohérent. Par exemple en HTML tu peux écrire les noms de balise en minuscules ou majuscules, mais mieux vaut choisir une solution plutôt qu'alterner (et le copier-coller de code venant d'ailleurs n'est pas une excuse Smiley cligne ). Même remarque pour les valeurs d'attributs entre single quotes (') ou double quotes ("). Pour information, la convention d'écriture actuelle c'est plutôt minuscules et double quotes.

- Tu as un identifiant sur on élément IFRAME. Donc autant utiliser l'interface DOM qui va bien:
var monIframe = document.getElementById('monIframe');


- Tu peux accéder au contenu d'une IFRAME de deux manières:
monIframe.contentWindow.document // largement compatible
monIframe.contentDocument // à partir d'IE8

À partir de l'un ou de l'autre, tu peux utiliser les méthodes DOM getElementById et compagnie.

- L'accès au contenu d'une IFRAME est bloqué si le document appelé se situe sur un nom de domaine différent. C'est la same-domain policy, une règle de sécurité des navigateurs.

Informations complémentaires:
https://developer.mozilla.org/en/HTML/Element/iframe (voir «Scripting»)
Ceci
a écrit :
L'accès au contenu d'une IFRAME est bloqué si le document appelé se situe sur un nom de domaine différent.
explique cela.

Merci pour l'explication et pour les conseils de syntaxe.
Merci B+2. Smiley cligne