2011-08-06 68 views
9

cấu trúc html:chờ hai giây sau đó tự động chuyển hướng một trang khác trong jquery?

<div class="user_register border_y"> 
<div> 
<span style="color:green;"> after two seconds then auto redirect </span><br><br> 

<a href="http://example.com/down/test.html">if you don't want to wait you can click this。</a></div></div> 

tôi muốn sử dụng jquery để có được: sau hai giây sau đó tự động chuyển hướng đến trang a nhãn. tôi nên làm sao?

Trả lời

14

Bạn thậm chí không cần jQuery; vani JS sẽ làm việc tốt ...

<a id="link" href="http://example.com">Go NOW!!!</a> 

JS:

window.setTimeout(function() { 
location.href = document.getElementsByClassName("user_register border_y")[0].getElementsByTagName("a")[0].href; 
}, 2000); 

getElementsByClassName không hoạt động trong tất cả các trình duyệt; do đó hãy chắc chắn rằng bạn cung cấp một fallback

+3

setInterval không phải là cách đúng đắn để làm điều này. Bạn muốn có bộ hẹn giờ một lần, không phải là bộ hẹn giờ lặp lại sẽ là setTimeout, chứ không phải setInterval. – jfriend00

+1

Như thanh lịch như jQuery là, tôi là một fan hâm mộ lớn của không giới thiệu nó, trừ khi đó là một trang đòi hỏi rất nhiều nó (tức là rất nhiều hành động kịch bản/sự kiện). Tuy nhiên, tôi sẽ đề nghị setTimeout thay thế. – Kris

+0

Bạn nói đúng; Tôi đã nghe điều gì đó về setTimeout là xấu nhưng tôi nghĩ rằng đó là hogwash. Đã cập nhật. –

12

Sử dụng setTimeout:

setTimeout(function() { 
    window.location.href = $("a")[0].href; 
}, 2000); 
+0

karim79, bạn có thể cho tôi biết tại sao sử dụng 2000 không 2. vì đó là hai giây – zhuanzhou

+0

@zhuanzhou - 'setTimeout' hy vọng đối số sẽ bằng mili giây và 2000 mili giây == 2 giây. – karim79

+0

đã nhận được, cảm ơn rất nhiều. – zhuanzhou

11

Tại sao sử dụng JavaScript?

<head> 
    <meta http-equiv="refresh" content="2;url=http://example.com/down/test.html"> 
</head> 

<body> 

    <div class="user_register border_y"> 
    <div> 
    <span style="color:green;"> after two seconds then auto redirect </span><br><br> 

    <a href="http://example.com/down/test.html">if you don't want to wait you can click this。</a></div></div> 
+0

tôi rất tiếc, trang động là – zhuanzhou

+0

'làm mới meta' không đáng tin cậy, ví dụ: trong IE tôi có thể tắt nó đi. – Mrchief

+2

@Mrchief: Bạn cũng có thể tắt JavaScript. ; o) – user113716

3

Dưới đây là một kịch bản đơn giản dựa tắt của mô tả của bạn:

function redirect(){ 
    window.location = $('a').attr('href'); 
} 

setTimeout(redirect, 2000); 

Demo: http://jsfiddle.net/KesU9/

+0

Tôi đã chỉnh sửa mã của bạn để đọc 'setTimeout (redirect, 2000)'. Mã trước đó có 'redirect()' sẽ chạy chức năng chuyển hướng ngay sau khi hết thời gian chờ, thay vì chỉ đơn giản gán chuyển hướng đến thời gian chờ. –

+0

Rất tiếc, bắt tốt. – RobB

1

Sử dụng mã này đơn giản trên onload cơ thể

<body onLoad="setTimeout(location.href='http://www.newpage.com', '2000')"> 
0

Sử dụng Javascript để chuyển hướng. Ví dụ:

<script type="text/javascript"> 
var time = 15; // Time coutdown 
var page = "http://www.redirect-url.com/"; 
function countDown(){ 
time--; 
gett("timecount").innerHTML = time; 
if(time == -1){ 
window.location = page; 
} 
} 
function gett(id){ 
if(document.getElementById) return document.getElementById(id); 
if(document.all) return document.all.id; 
if(document.layers) return document.layers.id; 
if(window.opera) return window.opera.id; 
} 
function init(){ 
if(gett('timecount')){ 
setInterval(countDown, 1000); 
gett("timecount").innerHTML = time; 
} 
else{ 
setTimeout(init, 50); 
} 
} 
document.onload = init(); 
</SCRIPT> 

thêm mã này sau khi tab thân

<h3>Auto redirect after <span id="timecount"></span> second(s)!</h3> 
Các vấn đề liên quan