donc je dois tirer une javascrit sur une page distante qui a (sans valeur) html combinée avec javascript (utile). La page, appelez, http://remote.com/data.html, ressemble à quelque chose comme ça (fou je sais):Comment charger javascript entremêlées avec html
<html>
<body>
<img src="/images/a.gif" />
<div>blah blah blah</div><br/><br/>
var data = { date: "2009-03-15", data: "Some Data Here" };
</body>
</html>
donc, je dois charger cette variable de données dans ma page locale et de l'utiliser.
Je perfer de le faire avec tout le code côté client. J'ai pensé, si je pouvais obtenir le html de cette page dans une variable javascript locale, je pourrais analyser le code javascript, exécuter eval dessus et être bon pour utiliser les données. J'ai donc pensé charger la page distante dans un iframe, mais je n'arrive pas à trouver l'iframe dans le dom. Pourquoi pas ?:
<script>
alert(window.parent.frames.length);
alert(document.getElementById('my_frame'));
</script>
<iframe name="my_frame" id='my_frame' style='height:1px; width:1px;' frameBorder=0 src='http://remote.com/data.html'></iframe>
La première alerte affiche 0, la seconde nulle, ce qui n'a aucun sens. Comment puis-je contourner ce problème?
Attention ce que vous souhaitez - si tout cela réussit, vous (! Et vos utilisateurs) exécuterez code non fiable (si ce n'est pas sous votre contrôle, il pourrait changer à tout moment) dans le contexte de votre page. Drive-by malware, quelqu'un? – Piskvor
Bien sûr, l'alerte affichera 0 et null ... Lorsque ce script s'exécute l'iframe n'existe pas encore ... Mettez la balise de script en dessous de l'élément iframe .. – James