Make a link open a new window (not tab)

This question already has an answer here:

  • Target='_blank' to show in new window, NOT new tab, possible? 9 answers

  • With pure HTML you can't influence this - every modern browser (= the user) has complete control over this behavior because it has been misused a lot in the past...

    The anchor element has an attribute target *. The value you are looking for is _blank **.

    <a href="www.example.com/example.html" target="_blank">link text</a>
    

    It opens a new window (HTML4) or a new browsing context (HTML5). However, browsing context in modern browsers is mostly "new tab" instead of "new window". You have no influence on that, and you can't "force" the browser to open a new window.

    On the other hand, forcing a new window is possible via javascript - see Ievgen's answer below for a javascript solution. However, be aware, that opening windows via javascript (if not done in the onclick event from an anchor element) are subject to getting blocked by popup blockers!

    (*) This attribute dates back to the times when browsers did not have tabs and using framesets was state of the art. In the meantime, the functionality of this attribute has slightly changed (see MDN Docu)

    (**) There are some other values which do not make much sense anymore (because they were designed with framesets in mind) like _parent , _self or _top .


    这将打开一个新窗口,而不是标签(使用JavaScript,但非常简洁):

    <a href="print.html"  
        onclick="window.open('print.html', 
                             'newwindow', 
                             'width=300,height=250'); 
                  return false;"
     >Print</a>
    

    I know that its bit old Q but if u get here by searching a solution so i got a nice one via jquery

      jQuery('a[target^="_new"]').click(function() {
        var width = window.innerWidth * 0.66 ;
        // define the height in
        var height = width * window.innerHeight / window.innerWidth ;
        // Ratio the hight to the width as the user screen ratio
        window.open(this.href , 'newwindow', 'width=' + width + ', height=' + height + ', top=' + ((window.innerHeight - height) / 2) + ', left=' + ((window.innerWidth - width) / 2));
    
    });
    

    it will open all the <a target="_new"> in a new window

    EDIT:

    1st, I did some little changes in the original code now it open the new window perfectly followed the user screen ratio (for landscape desktops)

    but, I would like to recommend you to use the following code that open the link in new tab if you in mobile (thanks to zvona answer in other question):

    jQuery('a[target^="_new"]').click(function() {
        return openWindow(this.href);
    }
    
    
    function openWindow(url) {
    
        if (window.innerWidth <= 640) {
            // if width is smaller then 640px, create a temporary a elm that will open the link in new tab
            var a = document.createElement('a');
            a.setAttribute("href", url);
            a.setAttribute("target", "_blank");
    
            var dispatch = document.createEvent("HTMLEvents");
            dispatch.initEvent("click", true, true);
    
            a.dispatchEvent(dispatch);
        }
        else {
            var width = window.innerWidth * 0.66 ;
            // define the height in
            var height = width * window.innerHeight / window.innerWidth ;
            // Ratio the hight to the width as the user screen ratio
            window.open(url , 'newwindow', 'width=' + width + ', height=' + height + ', top=' + ((window.innerHeight - height) / 2) + ', left=' + ((window.innerWidth - width) / 2));
        }
        return false;
    }
    
    链接地址: http://www.djcxy.com/p/36610.html

    上一篇: 点击标题div时如何使Bootstrap手风琴折叠?

    下一篇: 打开一个链接打开一个新窗口(不是选项卡)