2012-01-25 39 views
0

當用戶點擊鏈接到外部網站時,如何顯示一個模式彈出窗口幾秒鐘(表示它重定向到外部網站),然後在新窗口中打開鏈接。定時jQuery模式彈出窗口來指示重定向到外部網站

我已經在使用JQuery UI對話框。最好我不想修改HTML(即創建一個對話框,因爲JQuery UI對話框需要),但想要純JQuery/JS解決方案,它將創建/注入對話框 並顯示它。

我迄今爲止嘗試:

$('a[rel=external]').click(
    function(event) 
    { 
     event.preventDefault(); 
     $('#redirectDialog').dialog('open').delay(2000); 
     $('#redirectDialog').dialog('close'); 
     window.open(this.href); 
     return false; 
    } 
); 

不幸的是,該對話框顯示不出來 - 它立即打開一個新窗口的鏈接。

任何幫助獲得對話框顯示,暫停,然後關閉然後打開鏈接,並幫助在飛行中創建對話將不勝感激。

回答

2

爲什麼不使用一個明確的超時?事情是這樣的:

$('a[rel=external]').click(function(event) { 
    event.preventDefault(); 
    $('#redirectDialog').dialog('open'); 

    var href = this.href; 
    setTimeout(function() { 
     $('#redirectDialog').dialog('close'); 
     window.open(href); 
    }, 2000); 
    return false; 
}); 

您使用setTimeout讓你的延遲,然後做你的window.opensetTimeout回調。

+0

這很好 - 它運作良好。 – Prembo

1

你不應該使用window.open()而是使用Window.location.href = URL;這將加載鏈接在同一窗口

$('a[rel=external]').click(
    function(event) 
    { 
     event.preventDefault(); 
     $('#redirectDialog').dialog('open').delay(2000); 
     $('#redirectDialog').dialog('close'); 
     window.location.href = this.href; 
     return false; 
    } 
); 
+0

我真的希望它在另一個窗口中打開。 – Prembo

相關問題