X

How to Open Links in a Popup Window

Popup windows are not always desirable and are most likely frowned upon by many due to it being infamous for being used to open advertisements. However there may be a genuine need for opening links in a popup window in web applications. In this post, I will show how we can easily define click behavior on links to open them in a popup along with some customization options such as sizing the popup window.

Normally links get opened in the same window in which they are clicked in. In order to open them in a new window, we add target="_blank" attribute to links. However to open the links in a separate popup window, we can make use of the onclick property and specifying a inline JavaScript code window.open as shown below.

HTML + JavaScript code for Popup

<a href="http://kanishkkunal.com" 
  target="popup" 
  >"window.open('http://kanishkkunal.com','popup','width=600,height=600'); return false;">
    Open Link in Popup
</a>

Here we are asking the browser to add our inline JavaScript code in the click behavior of the link by specifying the onclick attribute. We are passing the URL to be opened in popup along with the width and height of the popup window that we want to create. By adding return false we are ensuring that the default click action is not executed.

Demo of Popup Window

Click on the button below to see the above code in action. A popup window of size 600×600 should get created and it should open the link that we specified.


Open Link in Popup

While this kind of popup should not be blocked by the browser as we are opening just one new window on user click, however if your browser is over-aggressive in blocking popups then you may need to temporarily disable the popup blocker in order to see it in action.

As seen in the screen-clip below, the popup window that we created will be re-sizable by the user and will also have its own address-bar as well as the scrollbar.

Resizable Popup Window with Scrollbars

Having the popup window re-sizable and scrollable by the user is the most ideal case when you are creating popups. Not being able to resize or scroll a popup window might frustrate some users. However if you have a specific use case where you want to disable scrolling as well as resizing on the popup window then read on to do these customizations.

Customizing Popup Window

In the most basic form as we saw above, the popup window will allow users to resize, scroll and change the address of it. In certain cases, you may want to disallow such actions on the popup window. In order to achieve that, we need to pass on additional parameters to the window.open method. These additional parameters that can be used are as follows:

location, menubar, resizable, scrollbars ,status, titlebar and toolbar (source)

Note that not all of these parameters are supported by all the browsers and therefore you may not have a uniform behavior if you specify them. For e.g. lets see a use-case below

Disable resizing and scrolling in popup window

To disable resizing and scrolling in the popup window, specify resizable=no and scrollbars=no.

<a href="http://kanishkkunal.com" 
  target="popup" 
  >"window.open('http://kanishkkunal.com','popup','width=600,height=600,scrollbars=no,resizable=no'); return false;">
    Open Link in Popup
</a>

Popup with Resizing disabled

You will find that disabling the resizing of popup window is only supported in Internet Explorer and will not work in Chrome or Firefox. Additionally, hiding the scrollbar will work in Internet Explorer (IE), Firefox and Opera but not in Chrome.

Before you go all crazy with popup windows, do take a moment to decide whether you really want to adopt the popup behavior vs opening links in a new window. A link can be opened in a new window (or in a new tab) by simple adding the target="_blank" attribute to links like shown below. These kinds of links are never blocked by the popup blocker while opening.

<a href="http://kanishkkunal.com/" target="_blank">Open in a New Window</a>

To conclude, I would restate that unless you have a very specific reason, opening links in popup window should be avoided as much as possible. But when you really have the need to do it, open just one link at a time and disable the default link behavior in order to avoid popup blockers and to give better experience to the user.

Categories: Development
Tags: JavaScript
Related Post