D'accord, donc dans cette application, il y a un iframe dans lequel l'utilisateur est fourni avec des liens ou une certaine capacité qui permet à cet iframe de naviguer vers un site externe. Vous cherchez ensuite à capturer l'URL que l'utilisateur a parcourue.
Une chose à garder à l'esprit. Étant donné que l'URL est vers une source externe, vous serez limité dans la mesure où vous pourrez interagir avec cet iframe via javascript (ou un accès côté client pour cette question), c'est ce qu'on appelle la sécurité de navigation entre domaines, comme vous l'avez apparemment découvert. Il existe des solutions astucieuses, comme présenté ici Javascript de croisement de domaine, de croisement de trame, bien que je ne pense pas que cette solution s'applique dans ce cas.
Tout ce à quoi vous pouvez accéder est la localisation, comme vous en avez besoin.
Je suggère de rendre le code présenté plus résilient et moins sujet aux erreurs. Essayez de naviguer sur le web parfois avec IE ou FF configuré pour afficher les erreurs javascript. Vous serez surpris de voir combien d'erreurs javascript sont générées, en grande partie parce qu'il y a beaucoup de javascript sujet aux erreurs, qui continue à proliférer.
Cette solution suppose que l'iframe en question est le même contexte "window" dans lequel vous exécutez le javascript. (C'est-à-dire, il n'est pas incorporé dans un autre cadre ou iframe, auquel cas, le code javascript devient plus compliqué, et vous devez probablement effectuer une recherche récursive dans la hiérarchie des fenêtres.)
</frame>
<input type='text' id='txtUrl' />
<input type='button' id='btnGetUrl' value='Obtenir URL' onclick='GetIFrameUrl();' />
<script language='javascript' type='text/javascript'>
function GetIFrameUrl()
{
if (!document.getElementById)
{
return;
}
var frm = document.getElementById("frmExternal");
var txt = document.getElementById("txtUrl");
if (frm == null || txt == null)
{
// pas un excellent retour utilisateur mais légèrement mieux que des erreurs de script désagréables
alert("Il y a eu un problème avec cette page, veuillez rafraîchir.");
return;
}
txt.value = frm.src;
}
</script>
</code></pre>
<p>J'espère que cela vous aidera.</p></x-turndown>