Javascript - Mở một URL nhất định trong tab mới bằng cách nhấp vào nút


109

Tôi muốn có một nút chuyển hướng đến một URL nhất định và mở trong một tab mới. Điều này có thể giải quyết như thế nào?

Câu trả lời:


143

Dùng cái này:

<input type="button" value="button name" onclick="window.open('http://www.website.com/page')" />

Làm việc cho tôi và nó sẽ mở ra một cửa sổ 'popup' mới thực sự thay vì một trình duyệt hoặc tab đầy đủ mới. Bạn cũng có thể thêm các biến vào nó để ngăn nó hiển thị các đặc điểm trình duyệt cụ thể như sau:

onclick="window.open(this.href,'popUpWindow','height=400,width=600,left=10,top=10,,scrollbars=yes,menubar=no'); return false;"

2
@ wong2 Có thể muốn thay đổi câu trả lời cho câu trả lời này. Cái hiện được chọn còn lâu mới có hiệu quả.
CSS

54

Trong javascript, bạn có thể làm:

window.open(url, "_blank");

29

Thêm target = "_ blank" sẽ thực hiện được:

<a id="myLink" href="www.google.com" target="_blank">google</a>

3
Tôi hiểu rồi, xin lỗi vì tôi đã bỏ lỡ điều đó. Chà, bạn có thể tạo kiểu cho liên kết trông giống như một nút. Nếu bạn đang sử dụng jQuery UI, chỉ cần sử dụng nút để làm như vậy.
Tim Büthe

1
Giải pháp tuyệt vời cho đại đa số chúng ta, những người chỉ mới biết về thiết kế web! Cảm ơn bạn!
SMBiggs

1
+1 vì bạn đã đưa ra giải pháp tốt cho những người đang tìm kiếm câu trả lời đơn giản "liên kết mở trong tab mới", nếu họ không sử dụng nút.
user295583058

Chính xác những gì tôi muốn. Cảm ơn
Shahrukh Anwar

+1, nếu thứ gì đó mở một trang trong tab mới, về mặt logic, đó là một liên kết, vì vậy <a>thẻ là phù hợp. Nên sử dụng kiểu dáng để làm cho nó giống như một chiếc cúc áo.
Kos,

21

Bạn có thể quên việc sử dụng JavaScript vì trình duyệt kiểm soát việc nó có mở trong tab mới hay không. Lựa chọn tốt nhất của bạn là thay vào đó làm điều gì đó như sau:

<form action="http://www.yoursite.com/dosomething" method="get" target="_blank">
    <input name="dynamicParam1" type="text"/>
    <input name="dynamicParam2" type="text" />
    <input type="submit" value="submit" />
</form>

Điều này sẽ luôn mở trong một tab mới bất kể khách hàng sử dụng trình duyệt nào do target="_blank"thuộc tính.

Nếu tất cả những gì bạn cần là chuyển hướng không có tham số động, bạn có thể sử dụng liên kết có target="_blank"thuộc tính như Tim Büthe gợi ý.


1
Công trình theo yêu cầu (thử nghiệm trên chrome, firefox, IE10) :)
Zeeshan

10

Sử dụng window.openthay vì window.locationđể mở một cửa sổ hoặc tab mới (tùy thuộc vào cài đặt trình duyệt).

Fiddle của bạn không hoạt động vì không có buttonphần tử để chọn. Hãy thử input[type=button]hoặc cho nút idvà sử dụng #buttonId.


10

Phương pháp ưa thích của tôi có ưu điểm là không nhúng JavaScript vào đánh dấu của bạn:

CSS

a {
  color: inherit;
  text-decoration: none;
}

HTML

<a href="http://example.com" target="_blank"><input type="button" value="Link-button"></a>

Vâng, tôi đoán tôi có một phương pháp ưa thích mới.
Nghỉ

Tôi nghĩ cái này trả lời câu hỏi đúng hơn. 1 :)
Pramesh Bajracharya

3

Mở trong tab mới bằng javascript

 <button onclick="window.open('https://www.our-url.com')" id="myButton" 
 class="btn request-callback" >Explore More  </button>

1

Tôi vừa sử dụng target = "_ blank" dưới thẻ biểu mẫu và nó hoạt động tốt với FF và Chrome, nơi nó mở trong một thẻ mới nhưng với IE, nó sẽ mở trong một cửa sổ mới.


1
Việc một tab hoặc cửa sổ mở ra được xác định bởi các tùy chọn trình duyệt của người dùng. Tôi không biết về IE, nhưng trong hầu hết các trình duyệt, trang web không thể chọn xem liên kết mở trong tab hay cửa sổ, nhưng người dùng có thể định cấu hình nó.
joeytwiddle

0

thử cái này

<a id="link" href="www.gmail.com" target="_blank" >gmail</a>

-1

Hãy thử HTML này:

<input type="button" value="Button_name" onclick="window.open('LINKADDRESS')"/>

-5

Bạn không thể. Hành vi này chỉ có sẵn cho các plugin và chỉ có thể được định cấu hình bởi người dùng.


-5
<BUTTON NAME='my_button' VALUE=sequence_no TYPE='SUBMIT' style="background-color:transparent ; border:none; color:blue;" onclick="this.form.target='_blank';return true;"><u>open new page</u></BUTTON>

Nút này sẽ giống như một URL và có thể được mở trong một tab mới.


bạn cần thêm "biểu mẫu"
nerkn

Không phải là một ý kiến ​​hay (nói về mặt ngữ nghĩa) để có một nút hoạt động giống như một liên kết. Thay vào đó, hãy sử dụng athẻ.
Henrique Schreiner

-6

SỬ DỤNG mã này

function openBackWindow(url,popName){
        var popupWindow = window.open(url,popName,'scrollbars=1,height=650,width=1050');
          if($.browser.msie){
            popupWindow.blur();
            window.focus();
        }else{
           blurPopunder();
        }
      };

    function blurPopunder() {
            var winBlankPopup = window.open("about:blank");
            if (winBlankPopup) {
                winBlankPopup.focus();
                winBlankPopup.close()
            }
    };

CNTT hoạt động tốt trong Mozilla, IE và chrome trên và phiên bản ít hơn 22; nhưng không hoạt động trong Opera và Safari.


2
Đây không phải là câu trả lời tốt nhất! Đặc -1.
Shougo Makishima

1
Sử dụng mã này không thực sự là một câu trả lời và bạn không có động lực đằng sau nó.
Edeph
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.