Target frame in parent with link from child?

I want to pop up a child dialog window from link on parent frameA.  When user clicks link on child, close child and display linked URL in parent frameB.

I would like to do this with a modal child, but I can live with modeless if the function also closes the window.

It seems like this should be easy, but I can't find a solution.
LVL 1
jrigginAsked:
Who is Participating?
 
brunoConnect With a Mentor Commented:
jriggin,

Thanks for coming back and updating the question, please accept either one of mine or JCsomay's answers, whichever you feel helped you the most.

Keep in mind I took the majority of my code from his original post...  :-)


BRUNO
0
 
jrigginAuthor Commented:
Child window opened with
window.showModalDialog("ChildWithLink.asp", "_blank")
0
 
JCsomayCommented:
ok... i think i recreated your situation and got it to do what you want. let me know if this is not the case:

in the asp page for frameA:
<span onClick="window.showModalDialog('ChildWithLink.asp', window.parent.frames['main']);">link</span>

in the asp page for the child modal:
<script language="javascript">
function closeWin() {
  if (window.dialogArguments && dialogArguments.location) {
    dialogArguments.location.href = "new.asp";
    window.close();  
  }
}
</script>
<body>
<input type=button value=close onClick="closeWin();">
</body>

in this example main is the name of framesetB and new.asp is the new file to display in framesetB

basically, i am passing the target frame as a parameter to the modal so I can set its target from there.

hope this helps!!
Jason
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
JCsomayCommented:
please update your question (did this work?)
0
 
brunoCommented:
Jason your idea did not work for me....

so i recreated it...



page1.asp

<html>
<head>
<script>
function fnCallDialog()                                            
{ showModelessDialog('ChildWithLink.asp',window,"status:false;dialogWidth:300px;dialogHeight:300px");
}
</script>
</head>
<body>
in the asp page for frameA:
<br />
<a href="javascript:onClick=fnCallDialog();">link</a>
</body>
</html>




ChildWithLink.asp

<html>
<head>
<script language="javascript">
function closeWin(page)
     {
     if (window.dialogArguments && dialogArguments.location)
          {
             dialogArguments.location.href = page;
             window.close();  
           }
     }
</script>
</head>
<body>
<br />
<br />
<a href="javascript:;" onClick="closeWin('new.asp');">this is a link to new.asp</a>
<br />
<br />
<a href="javascript:;" onClick="closeWin('page1.asp');">this is a link to page1.asp</a>
</body>
</html>



new.asp

<html>
<head>
</head>
<body>
new.asp
</body>
</html>




Try that and please let us know...


Good luck!


BRUNO
0
 
brunoCommented:
After further look, I neglected the frameset part.  Also the same code that works fine on my machine causes errors on other machines.

This should be fixable by changing the second page...

ChildWithLink.asp

<html>
<head>
<script language="javascript">
function closeWin(page)
    {
    if (window.dialogArguments && dialogArguments.location)
         {
            dialogArguments.location.href = page;
            window.close();  
          }
    }
</script>
</head>
<body>
<br />
<br />
<a onClick="closeWin('new.asp');">this is a link to new.asp</a>
<br />
<br />
<a onClick="closeWin('page1.asp');">this is a link to page1.asp</a>
</body>
</html>


Sorry!

BRUNO
0
 
jrigginAuthor Commented:
Jason, sorry for the delay in acknowleddging your response.  I went on vacation and did not even look at a crt or lcd!



Thanks to both Bruno and Jason.  But I can't get either solution to work.  I tried a number of different combinations.  The last version (below) opens the url in the Link fram instead of Main.


Here's what I have:

=====================================
START.HTM - The frameset definition
------------------------------------
HTML><HEAD></HEAD>
<FRAMESET ROWS="64px,*" Border=0>
<NOFRAME>You must use a browser that can display frames to see this page.</NOFRAME>
  <FRAME
          FRAMEBORDER="NO"
          MARGINHEIGHT="0"
          MARGINWIDTH="0"
          NAME="Link"
          NORESIZE
          SCROLLING="NO"
          SRC="MenuLink.asp"
          >
  <FRAME
          FRAMEBORDER="NO"
          MARGINHEIGHT="0"
          MARGINWIDTH="0"
          NAME="Main"
          NORESIZE
          SCROLLING="NO"
          SRC="Main.htm"
          >
</FRAMESET>
</HTML>
=====================================
ChildWithLink.asp - the modal popup
-------------------------------------
<html>
<head>
<script language="javascript">
function closeWin(page)
    {
    if (window.dialogArguments && dialogArguments.location)
         {
            dialogArguments.location.href = page;
            window.close();  
          }
    }
</script>
</head>
<body>
<br />
<br />
<a href="javascript:;" onClick="closeWin('new.asp');">this is a link to new.asp</a>
<br />
<br />
<a href="javascript:;" onClick="closeWin('page1.asp');">this is a link to page1.asp</a>
</body>
</html>

====================================
Page1.asp, new.asp, main.htm - just
to show something -
-----------------------------------
<html>
<head>
</head>
<body>
MAIN (or NEW or Page1)
</body>
</html>

0
 
JCsomayCommented:
jriggin,

I would be happy to email you the files... I have it working in my local directory....that way you can throw them in and modify as necessary

jason
0
 
brunoCommented:
ok let's try this again, using your frameset....



start.asp
-----------------
<HTML><HEAD></HEAD>
<FRAMESET ROWS="64px,*" Border=0>
<NOFRAME>You must use a browser that can display frames to see this page.</NOFRAME>
 <FRAME
         FRAMEBORDER="NO"
         MARGINHEIGHT="0"
         MARGINWIDTH="0"
         NAME="Link"
         NORESIZE
         SCROLLING="NO"
         SRC="MenuLink.asp"
         >
 <FRAME
         FRAMEBORDER="NO"
         MARGINHEIGHT="0"
         MARGINWIDTH="0"
         NAME="Main"
         NORESIZE
         SCROLLING="NO"
         SRC="new.asp"
         >
</FRAMESET>
</HTML>


MenuLink.asp
------------------------
<html>
<head>
<script>
function fnCallDialog()                                            
{ showModelessDialog('ChildWithLink.asp',window.parent.frames['Main'],"status:false;dialogWidth:300px;dialogHeight:300px");
}

</script>
</head>
<body>
in the asp page for frameA:
<br />
<a href="javascript:onClick=fnCallDialog();">link</a>
</body>
</html>


ChildWithLink.asp
----------------
<html>
<head>
<script language="javascript">
function closeWin(page)
     {
     if (window.dialogArguments && dialogArguments.location)
          {
             dialogArguments.location.href = page;
             window.close();  
           }
     }
</script>
</head>
<body>
<br />
<br />
<a onClick="closeWin('new1.asp');">this is a link to new1.asp</a>
<br />
<br />
<a onClick="closeWin('MenuLink.asp');">this is a link to MenuLink.asp</a>
</body>
</html>


new.asp
-------------------
<html>
<head>
</head>
<body>
new.asp
</body>
</html>


new1.asp
--------------------
<html>
<head>
</head>
<body>
new1.asp
</body>
</html>




try those combination of files, things should be just as you want them.

Good Luck!


BRUNO
0
 
jrigginAuthor Commented:
Thanks - this does the deed!
0
 
jrigginAuthor Commented:
Sorry - I thought I accepted this last time.
0
 
brunoCommented:
no problem....thanks for coming back and cleaning this up!

BRUNO
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.