views:

74

answers:

4

I have a page like this...

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

and I want to do this...

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

I found this: $("#mainFrame").get(0).location.href, but it doesnt work...

Also, I need it to return the current url, so if someone navigates around it should return the current page they are on.

A: 

Does iframe.src not work? Or, are you trying to get the parent document? In that case, you can just use parent.

Azmisov
No it does not work. It only returns the original value.
Blankasaurus
A: 

As Azmisov says iframe.src does the trick

<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>
JumpingJezza
No it doesn't. iframe.src returns the original url. In your case even if you navigate away from Test.aspx it will return Test.aspx as the src. Just add a link on Test.aspx to SomethingElse.aspx and then click the button again... The desired output would be SomethingElse.aspx.
Blankasaurus
OK - I've posted a different answer that works for me :)
JumpingJezza
+1  A: 

Okay so you mean you have to access the URL of the parent from the child iframe?

$("#mainFrame").get(0).contentWindow.location
xar
The parent frame (untitled div in my example) needs to access the CURRENT url of the child iframe. The problem is that after naviagting to a different url from the starting url of the child iframe, I am still getting the original starting URL of the child iframe.
Blankasaurus
I updated my answer. :)
xar
Cool - works great. Thanks +1
Blankasaurus
A: 

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

JumpingJezza