2010-09-10 43 views
48

Tôi đang cố gắng thực hiện một tác vụ rất đơn giản ở đây, tôi muốn có thể nhấp vào nút trên trang và đưa nó đến trang khác. Tôi đã thử window.location.href, và một loạt các thứ khác và nó không làm gì cả. Tôi đã thử các nền tảng khác nhau và các trình duyệt khác nhau, tất cả đều có cùng kết quả.JavaScript tải trang trên nút nhấp vào

Tôi biết rằng nó có thể gọi hàm nhưng tôi không thể tải trang mới. Ngoài ra điều này là tất cả trong hệ thống tập tin địa phương của tôi và cả hai trang sống ở cùng cấp (nhưng tôi cũng đã cố gắng để tải một trang bên ngoài như www.apple.com).

Mọi suy nghĩ?

Cảm ơn Patrick

+0

Bạn cần cụ thể hơn "một loạt các thứ khác". Đăng mã của bạn (HTML và JavaScript) và cho chúng tôi biết bạn đang gặp phải lỗi nào. –

+0

Không phải là một ý tưởng hay: Một nút được người dùng kinh nghiệm như một cái gì đó gây ra hành động/kích hoạt (postback, save/load). Một liên kết (a href) được sử dụng để điều hướng. Đừng trộn lẫn chúng. Bạn sẽ gây nhầm lẫn cho người dùng. –

Trả lời

76

mã đơn giản để trang chuyển hướng

<!-- html button designing and calling the event in javascript --> 
<input id="btntest" type="button" value="Check" 
     onclick=window.location.href = 'http://www.google.com' " /> 
+0

Điều này làm việc, tuy nhiên tôi nghĩ rằng vấn đề của tôi là tôi đã gõ type = "submit" và không phải loại = "nút". Cảm ơn đã giúp đỡ! – Patrick

+1

'window.location.assign()' hoạt động tốt hơn cho tôi trong firefox. Đối với một số lý do giao '=' lịch sử sai lầm. – akostadinov

15

Chỉ window.location = "http://wherever.you.wanna.go.com/", hoặc, đối với liên kết địa phương, window.location = "my_relative_link.html".

Bạn cũng có thể thử bằng cách nhập mã vào thanh địa chỉ, ví dụ: javascript: window.location = "http://www.google.com/".

Cũng lưu ý rằng phần giao thức của URL (http://) không phải là tùy chọn cho liên kết tuyệt đối; bỏ qua nó sẽ làm cho javascript giả định một liên kết tương đối.

+0

Cảm ơn bạn đã đề xuất, tôi không biết bạn có thể chạy javascript trong trình duyệt, tìm hiểu điều gì đó mới mẻ mỗi ngày. Tôi đã cố gắng window.location và những người khác như nó nhưng không thể làm cho nó hoạt động, và tôi biết rằng nó nên. Tôi thấy rằng "loại" của tôi là sai vì vậy nó không có gì để làm với JavaScript và tất cả mọi thứ để làm với HTML. Cảm ơn lần nữa cho lời khuyên. – Patrick

19

Không lạm dụng các yếu tố hình thức trong đó < một yếu tố > sẽ đủ.

<style> 
    /* or put this in your stylesheet */ 

    .button { 
     display: inline-block; 
     padding: 3px 5px; 
     border: 1px solid #000; 
     background: #eee; 
    } 

</style> 

<!-- instead of abusing a button or input element --> 
<a href="url" class="button">text</a> 
+0

Tôi cũng nghĩ đến việc đi theo cách này. Cảm ơn bạn vì sự giúp đỡ. Tôi vẫn thích những nút này hơn. Cảm ơn một lần nữa. – Patrick

+0

+1 để làm điều đó 'The Right Way' – michaelward82

+0

Tôi đã thử nút này và nó không nhìn tốt. Nó chỉ là một liên kết với một đường màu đen xung quanh nó. – AdmiralAdama

3

Những câu trả lời ở đây làm việc để mở trang trong cùng một cửa sổ trình duyệt/tab.

Tuy nhiên, tôi muốn trang mở trong cửa sổ/tab mới khi họ nhấp vào nút. (tab/quyết định cửa sổ phụ thuộc vào thiết lập của trình duyệt của người dùng)

Vì vậy, đây là cách nó làm việc để mở trang trong tab mới/cửa sổ:

<button type="button" onclick="window.open('http://www.example.com/', '_blank');">View Example Page</button> 

Nó không phải là một nút, bạn có thể sử dụng bất cứ nơi nào. Thông báo _blank được sử dụng để mở trong tab/cửa sổ mới.

Các vấn đề liên quan