2012-01-08 38 views
1

我有一個div標識爲emailsuccess。用戶填寫聯繫表並提交,他被重定向到http://www.mysiteurl.com?email=success。我有一個div,只有當URL包含email = success時纔會顯示。 (基本上它只是顯示一條消息「你的電子郵件已發送」。)我希望顯示消息約5秒鐘,然後淡出並從URL中刪除email = success變量,所以如果用戶重新加載頁面或與朋友分享,他們將不會收到電子郵件已發送的通知。在一段時間後刪除URL變量

也許使用.delay()函數我已經將整數設置爲5000,但我不知道如何讓內容淡出並從URL中刪除變量。

這裏是我的代碼至今:

$(document).ready(function(){ 
var url = document.location.href; 

if (url.indexOf('/Contact-us-a/7.htm?email=success') >= 0) { 
$('#emailsuccess').show(); 
} else { 
$('#emailsuccess').hide(); 
}; 
}); 
+0

'setTimeout()'和這個http://stackoverflow.com/questions/3338642/updating-address-bar-with-new-url-without-hash-or-reloading-the-page會幫助你。 – 2012-01-08 09:30:13

回答

2

除非你自己限制支持歷史API的瀏覽器,你就必須將瀏覽器重定向到URL不包含的URL的一部分(將導致頁面重新加載)。

Symfony Framework for PHP在模板中使用Flash變量解決了這個問題(與Flash無關) - 下一個請求可用的變量,但在下一個請求中可用。這樣,您就不必通過URL傳遞該狀態,並且刷新相同的URL將不會重新顯示該消息。