window.open in a function replaces current tab as well as opens new tab

javascript

Solution

Your first `case` statement is falling through. You need to add a `break`:

switch (t) {
    case 1: 
        window.open(url,"_blank");
        break;
    case 2: 
        window.location = url;
        break;
}

Without the `break`, every `case` below the one that was first matched will be executed.

I have added a `break` to the second case too, simply because it's generally considered good practice to always `break` a case. In fact, JSLint will flag a missing `break` as an error.

Problem

I have a funny complication i would like to understand, if i have window.open as the onclick event of an anchor, a new tab is opened as required. If the onclick calls a function, which in turn does a window.open a new tab is opened, but also the current tab gets the new url as well. I can demonstrate it here it works ok when you click on the link, wheras here the url is also opened in the results area as well ! Thanks Symeon.

Original source