Current course:

Opening Windows using Javascript


Pop-up windows are used when you want to display something but don't want to leave the page.

EXAMPLE:
      <a href="#" onClick="window.open('trivia.html', 'triviaWnd', 'width=370,height=240,status=1'); return false;">click here</a>

a href equals a # because you want to stay on the same page.

onClick is the event handler. When the user clicks, it opens a window with the specifications listed.

window.open is a function that controls the event (opens a new browser window) and contains the event specifications, including what html page to load into the window (trivia.html), the window name (triviaWnd), size of window (370x240), and its status bar (1 = yes).


• The first parameter, 'trivia.html' is the URL of the file to load in the new window. Note that it doesn't have to be an HTML file. It could also be an image file or anything the browser can display.


• The second parameter, 'triviaWnd' is the name of the new window - the name can be anything that isn't a Javascript keyword, but must it must start with a letter, $, or underscore _ . Windows need to be named, so when they are called by the script, the browser knows which window your code is trying to communicate with. This is necessary to close the window later.


      - If you want information to load in the same window, you use the same window name in your links.
       - If you want multiple windows then you need to use unique names for each window created.

• The third parameter determines the dimensions and appearance of the window. We have specified a window of size 370x240 with a visible status bar. Note that it is in single quotes and the quotes end after the last parameter.

•The appearance of the window can be controlled by changing the value of the third parameter. The commonly used options are:


NOTE: Some of the parameters below do not work in all browsers
      height - Height of the new window in pixels (eg: height=100)
      width - Width of the new window in pixels (eg: width=200)
      top - Number of pixels from top of screen (eg: top=100)
      left - Number of pixels from left of screen (eg: left=200)
      directories - Specifies whether to display the browser directory buttons like "What's Cool" etc. (eg: directories=yes)
      hotkeys - Enables or disables various hotkeys (eg: hotkeys=no)
      location - Specifies whether the "Location" box is to be displayed (eg: location=yes)
      menubar - Specifies whether the new window should have a menu bar (eg: menubar=yes)
      resizable - Specifies whether the user is allowed to resize the new window (eg: resizable=no)
      scrollbars - Specifies whether the new window can have scroll bars if necessary (eg: scrollbars=yes)
      toolbar - Specifies whether the new window has a toolbar (eg: toolbar=yes)

NOTE: Instead of yes/no values, you may also use 1 or a 0. i.e., you may write toolbar=1 instead of toolbar=yes.




Samples of opening windows with different functions:


1) Basic window. No menu, no toolbar, no status bar, not even scrollbars:


EX:
      <a href="#" onClick="window.open('myHTML.html', 'newWnd', 'width=500,height=400'); return false;">Try it</a>

TEST IT


2) Window with menubar, location box, scrollbars, but not resizable:


EX: <a href="#" onClick="window.open('myHTML2.html', 'newWnd', 'width=500,height=400,menubar=yes,location=yes,scrollbars=yes,resizable=no'); return false;">Try it</a>

TEST IT


NOTE: scrollbars won't show up if they aren't necessary.


3) Window with toolbar, statusbar and scrollbars. You can resize this window if you want which wasn't possible with above sample windows:


EX: <a href="#" onClick="window.open('myHTML3.html', 'newWnd', 'width=500,height=400,toolbar=1,status=1,scrollbars=yes,resizable=1'); return false;">Try it</a>

TEST IT



Closing Windows

Place the following code in the file displayed in the pop-up window, not the main file that opens the window.


1) Using window.close to call the name of the window:


EX: <a href="#" onClick="window.close('newWnd'); return false;">Close this window</a>

TEST IT


Opening Windows at Specific Screen Coordinates

<sample-click here>


In an a href tag:

<a href="#" onClick="window.open('filename.html', 'winName', 'width=300, height=300, top=200, left=150')">open it</a>


top = number of pixels from top of screen, ex: top=200
left = number of pixels from left of screen, ex: left=150




Opening Multiple Windows with One Link

<sample-click here>

You will NEED 4 HTML files (testR2.html, testR2_a.html, testR2_b.htm, ltestR2_c.html)

In HEAD of testR2.html:


<script type="text/javascript">

             var myWins = new Array("testR2_a","testR2_b","testR2_c");

             function newWindows() {
                   for(var i in myWins) {
                        var fileName = myWins[i] + ".html";
                        var winName = myWins[i] + "Win";
                        var multiWindow = window.open(fileName,winName,"width=140,height=160");
                  }
            }
</script>


Comments:
//testR2_a, testR2_b and testR2_c are your html file names minus the extension.
//repeats as many times as there are files in myWins - 3.
//adds extension to complete the file name.
//adds WIN to create unique names for each window.
//calls the window.open() with the current filename and current windowname.

In BODY of testR2.html:


<body>
      <a href="javascript:newWindows()">Click here to see windows</a>

</body>


In each of the other files add this: (change the self.moveTo and background-color)

<html>
      <head>

            <style type="text/css">
                  .style1 {
                        font-size: 14px;
                        font-family: Arial, Helvetica, sans-serif;
                        color: #330033;
                  }
            </style>


            <script language="javascript" type="text/javascript">
                  self.moveTo(100, 100);
            </script>

      </head>

      <body style="background-color:#6633FF;">
                  <span class="style1">hello!</span>
      </body>
</html>

 

//the self.moveTo will move the window to the x and y position specified