2009-09-13 7 views
0

j'espérais que quelqu'un peut me aider, je tente d'obtenir l'URL d'une page dans un iframe:question url Iframe pour les experts

<script language="JavaScript"> 
    function myLocation() { 
     alert(document.all.myFrame.contentWindow.location); 
    } 
</script> 

<button onclick="myLocation();">Location of Frame</button> 

<iframe src="http://www.google.com" width="800" height="600" frameborder="0" 
           scrolling="auto" name="myFrame"></iframe> 

Cela essentiellement me donner l'emplacement de l'iframe ma page, mais ne me donne pas l'URL de google.com - il est également important de me donner l'url de everypage que je peux ouvrir à partir des résultats de google, donc quand je suis sur google.com cela devrait me donner le google.com url et si je navigue sur www.facebook.com il devrait me donner l'url facebook ...

Toutes les idées sont les bienvenues! Merci

+0

S'il vous plaît essayer d'éditer le titre de votre question pour décrire plus qu'est-ce que la question. –

+0

En guise de recommandation générale, je vous conseille de 1) changer ** deprecated ** 'language =" JavaScript "' en ** required ** type = "text/javascript". 2) Ne pas utiliser 'document.all' non standard; à la place, accédez au formulaire via 'document.forms.myFrame'. 3) insérez seulement ce bouton "onclick" avec JS, car il est inutile et confus lorsque JS est désactivé. – kangax

+0

La réponse de David est juste, il est très délibéré que vous n'êtes pas autorisé à le faire. Sur une note non liée, 'contentWindow' est une extension IE non standard. En général, vous devriez utiliser la propriété standard 'contentDocument', revenant à 'contentWindow' quand cela n'est pas disponible (IE avant la version 8). Pour obtenir de document en fenêtre si vous avez à vous pouvez utiliser 'contentDocument.defaultView' - il n'est pas assez standardisé que la vue est la même que la fenêtre, mais dans tous les navigateurs qui le supporte aujourd'hui, il est. – bobince

Répondre

0

vous pouvez utiliser une sorte de bibliothèque javascript, mais je l'ai essayé ce code sur deviantart.com en utilisant le code javascript brut:

document.getElementsByTagName('iframe')[0].src et il m'a donné le résultat que je me attendais.

+0

Ceci donne seulement le src de la page initiale. Il ne se met pas à jour lorsque le document change. – Quentin

3

Le same origin policy empêche l'accès aux détails (y compris l'URI en cours) des documents sur d'autres domaines. Si vous voulez contourner ce problème, vous devrez soit utiliser autre chose qu'une page Web (telle qu'une application autonome ou une extension de navigateur) ou transmettre toutes les demandes par l'intermédiaire de votre propre serveur.

+0

oui @David proxy à travers son propre serveur est une meilleure solution. – TheVillageIdiot

Questions connexes