2010-09-14 3 views
1

J'ai une page comme ça ...accès iFrame URL avec JQuery/Javascript

<div> 
<iframe id="mainContent"> 
<iframe id="littleBox"> 
</div> 

et je veux faire ...

$(".someButton").live('click', function() { 
     alert(/*The URL That the Main Frame is ON*/); 
}); 

Je trouve ceci: $("#mainFrame").get(0).location.href, mais ne fonctionne pas ...

De plus, j'en ai besoin pour retourner l'adresse actuelle, donc si quelqu'un navigue, il devrait retourner la page actuelle sur laquelle il se trouve.

+0

Même question posée ici: http://stackoverflow.com/questions/44359/how-do-i-get-the-current-location-of-an-iframe – epascarello

Répondre

13

Bon si vous voulez dire que vous devez accéder à l'URL du parent de l'enfant iframe?

$("#mainFrame").get(0).contentWindow.location 
+0

Le cadre parent (div sans titre dans mon exemple) doit accéder à l'url CURRENT de l'iframe enfant. Le problème est qu'après navigation vers une URL différente de l'URL de départ de l'iframe enfant, je reçois toujours l'URL de départ originale de l'iframe enfant. – Jason

+0

J'ai mis à jour ma réponse. :) – xar

+0

Cool - fonctionne très bien. Merci +1 – Jason

0

Est-ce que iframe.src ne fonctionne pas? Ou, essayez-vous d'obtenir le document parent? Dans ce cas, vous pouvez simplement utiliser parent.

+1

Non ce ne est pas travail. Il renvoie uniquement la valeur d'origine. – Jason

0

Comme Azmisov dit iframe.src le tour est joué

<head runat="server"> 
    <title>iframe Test</title> 
    <script type="text/javascript"> 
     function ShowURLs() { 
      var control = document.getElementById("mainContent"); 
      alert("iframe source = " + control.src); 
      alert("this page = " + location.href); 
     } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <input type="button" id="someButton" value="Click Me" onclick="ShowURLs()" /> 
     <div> 
      <iframe id="mainContent" src="Test.aspx" /> 
      <iframe id="littleBox" /> 
     </div> 
    </div> 
    </form> 
</body> 
+2

Non, ce n'est pas le cas. iframe.src renvoie l'URL d'origine. Dans votre cas, même si vous quittez Test.aspx, il retournera Test.aspx en tant que src. Ajoutez simplement un lien sur Test.aspx à SomethingElse.aspx, puis cliquez à nouveau sur le bouton ... La sortie désirée serait SomethingElse.aspx. – Jason

+0

OK - J'ai posté une réponse différente qui fonctionne pour moi :) – JumpingJezza

0
document.getElementById('mainContent').contentWindow.location.href