?
Solved

Target frame in parent with link from child?

Posted on 2001-06-08
12
Medium Priority
?
705 Views
Last Modified: 2007-12-19
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.
0
Comment
Question by:jriggin
  • 5
  • 4
  • 3
12 Comments
 
LVL 1

Author Comment

by:jriggin
ID: 6168839
Child window opened with
window.showModalDialog("ChildWithLink.asp", "_blank")
0
 

Expert Comment

by:JCsomay
ID: 6169159
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
 

Expert Comment

by:JCsomay
ID: 6181633
please update your question (did this work?)
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 18

Expert Comment

by:bruno
ID: 6181964
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
 
LVL 18

Expert Comment

by:bruno
ID: 6182059
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
 
LVL 1

Author Comment

by:jriggin
ID: 6182797
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
 

Expert Comment

by:JCsomay
ID: 6182819
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
 
LVL 18

Expert Comment

by:bruno
ID: 6182851
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
 
LVL 1

Author Comment

by:jriggin
ID: 6203176
Thanks - this does the deed!
0
 
LVL 18

Accepted Solution

by:
bruno earned 800 total points
ID: 6203893
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
 
LVL 1

Author Comment

by:jriggin
ID: 6228245
Sorry - I thought I accepted this last time.
0
 
LVL 18

Expert Comment

by:bruno
ID: 6228254
no problem....thanks for coming back and cleaning this up!

BRUNO
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

CTAs encourage people to do something specific to show interest in your company, product or service. Keep reading to learn why CTAs should always be thought of as extremely important, albeit small, sections of websites.
Dramatic changes are revolutionizing how we build and use technology. Every company is automating, digitizing, and modernizing operations. We need a better, more connected way to work together as teams so we can harness the insights from our system…
The viewer will learn how to count occurrences of each item in an array.
Any person in technology especially those working for big companies should at least know about the basics of web accessibility. Believe it or not there are even laws in place that require businesses to provide such means for the disabled and aging p…
Suggested Courses
Course of the Month14 days, 5 hours left to enroll

807 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question