Changing frame size

I have HTML page with 2 frames. The problem I have is that I want to
change the size (width) of frames when user clicks on something (link)
in one of the frames. In the begining both frames have the same width,
but after user click I want one frame to shrink and the other to grow.
Is that possible in javaScript? If not, how could i do something like this?
Who is Participating?
superquestionsConnect With a Mentor Commented:
Just quit, Marko... if there is really a way to do that, then your page will probably have a lot of imcompatibility problems with browsers v3.0 or less. Well... I can just suggest you to quit with your idea.
No, you cannot do it.

The simplest way to achieve that effect is make your link refer to another container with the new needed frames.


marko020397Author Commented:
I have tried this, but then the contents of frames change. Is it possible to look in both frames save contents (URLs) of frames and open new frameset with this contents?
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

This can be done with the methods of the document object.

Would you like a way to go, or do you need full code?
marko020397Author Commented:
Give me just the way to do it. I will write it myself.
Acually, superquestion is not wrong; any JavaScript way to accomplish the job would work great on some browser and give problems on others.

Anyway, if versions are not a concern, here is a general scheme of what i meant:

you could have a container page looking something like this:

    <SCRIPT LANGUAGE="JavaScript"><!--
      function updateFrames() {
        with(self.document) {
          writeln("  <FRAMESET ROWS=\"10,*\">");
          writeln("    <FRAME SRC=\"Left.htm\">");
          writeln("    <FRAME SRC=\"Right.htm\">");
          writeln("  </FRAMESET>");
    // --></SCRIPT>
    <FRAME SRC="Left.htm">
    <FRAME SRC="Right.htm">

And, in your - say - Left.htm there could be the needed link, looking like:

<A HREF="javascript:void(top.updateFrames())">Update Frame</A>

This a no-return script, i.e. you will update your frames once; but it could be easily modified to handle more complex cases.


P.S. About points: if what i have written is of any use to you, i hope you'll award me a few points anyway... (BTW, there are ways to share points among experts too, by asking EE support)
marko020397Author Commented:
Adjusted points to 500
marko020397Author Commented:
Sorry, Julio. I though I was grading your answer and giving 500 points. I didn't notice that you were giving a comment. Now I rewarded "superquestions" for suggestion to quit, which doesn't deserve 500 points.

Now. How should I give you points? I didn't quite understand what you were thinking.
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.