2010-02-10 4 views
1

J'ai un iframe qui affiche un formulaire d'un site externe, une fois que le formulaire est soumis, il est redirigé vers une autre page qui a un message de remerciement. Est-il possible de savoir si l'emplacement de la page web src a changé ? J'espère avoir un sens ...Comment déterminer si l'emplacement de l'iframe a changé?

J'ai obtenu ce code qui fera le travail pour moi à partir de certains sites Web, son fonctionnement tout en im dans leur site Web, mais quand j'essaye de le faire localement im obtenir l'accès refusé erreur javascript. ...

<html> 
<body> 
<script language="JavaScript"> 
    function myLocation() { 
     alert(document.all.myFrame.contentWindow.location); 
    } 
</script> 
<iframe id="myFrame" src="http://www.java2s.com" style="width:200;"> 
</iframe> 
<br> 
<button onclick="myLocation();">Location of Frame</button> 
</body> 
</html> 

merci

Répondre

1

vous pouvez utiliser l'événement onLoad, comme dans l'exemple suivant:

<iframe src="http://www.google.com/" onLoad="alert('Test');"></iframe> 

l'alerte p op-up chaque fois que l'emplacement dans l'iframe a changé. Le seul problème avec cette technique est qu'elle peut ne pas fonctionner avec certains navigateurs plus anciens comme IE5 et Opera tôt. (Source)

MISE À JOUR:

Suite à votre édition, vous obtenez le « Accès refusé » erreur parce que vous ne pouvez pas accéder au contentWindow.location d'un site Web qui ne sont pas dans le même domaine de la fenêtre parent. Bien que ce soit malheureux pour votre exigence réelle, ceci est considéré comme une restriction de sécurité pour empêcher cross-site scripting.

+0

ouais mate merci, je viens de découvrir que après un certain googling.thanx ur commentaires mais ... est-il un wrk autour? Ce im essayant de faire est de permettre à un bouton désactivé lorsque le changes.it url ne doit pas nécessairement être l'url, je veux juste voir si tout a changé dans l'iframe ... – manraj82

+0

@ manraj82: Serait-il possible d'utiliser la méthode onLoad décrite ci-dessus? Il se déclenche chaque fois que quelque chose change dans l'iFrame, et fonctionne même avec du contenu inter-domaines, car il ne révèle rien sur le site dans l'iframe. –

+0

merci beaucoup, la méthode onLoad a fonctionné .... je l'ai eu en stockant une valeur de compteur dans un champ caché et ensuite activé le bouton basé sur la valeur du compteur dans le champ caché ... – manraj82

0
function chkCounter(counterValue) { 
     var tmp=document.getElementById('txtCounter').value; 
     document.getElementById('txtCounter').value=tmp+counterValue; 

     if(document.getElementById('txtCounter').value>1) 
     { 
     document.getElementById("btnClose").disabled = false; 
     } 
    } 

<input align="middle" type="button" onClick="self.close();" value="CLOSE" disabled="true" id="btnClose"> 
<input type="hidden" id="txtCounter"> 
Questions connexes