我想在用戶首次登錄我的頁面(通過鏈接或直接輸入URL)時執行一些操作。但是,如果用戶在其他地方關閉並通過後退/前進按鈕返回到我的頁面,則我不想再次執行此操作。只有在第一頁加載時才能工作,而不是在用戶通過後退/前進時加入
達到此目的的最佳方法是什麼?
注意:如果用戶點擊刷新按鈕,強制重新加載頁面,應該完成該工作。
我想在用戶首次登錄我的頁面(通過鏈接或直接輸入URL)時執行一些操作。但是,如果用戶在其他地方關閉並通過後退/前進按鈕返回到我的頁面,則我不想再次執行此操作。只有在第一頁加載時才能工作,而不是在用戶通過後退/前進時加入
達到此目的的最佳方法是什麼?
注意:如果用戶點擊刷新按鈕,強制重新加載頁面,應該完成該工作。
我覺得你的問題的解決方案將存儲會話cookie將保持,而目前的瀏覽器打開,然後將到期 - 這是很容易使用jQuery Cookie Plugin
然後你就可以作爲很容易地設置cookie,因爲這
$.cookie("example", "foo");
你說話,如果cookie是不存在關於將被執行,而忽視這項工作的cookie存在
如果用戶在頁面上手動刷新頁面,則Cookie仍然存在,工作將不會執行。在這種情況下,應該執行工作,因爲用戶手動刷新了頁面。 – aleemb
你可以把日期時間放在那裏,並保持頁面設置的時間量,我不認爲有一種方法在JavaScript或jQuery中檢測頁面是否來自後退按鈕並檢測頁面是否正在刷新,在服務器端代碼這很容易完成 –
一個可能的方法概述如下,雖然,它不是在所有的優雅。
最好的辦法是使用HTML5 Web存儲,使用會話存儲。當頁面第一次檢查本地存儲變量是否被設置並存儲了一些數據時,如果沒有,那麼設置數據,如果用戶使用next/prev按鈕並且當頁面加載事件被調用時再次返回,則可以檢測到用戶在此之前已經和它的不是第一頁加載。看到這個演示 http://www.amitpatil.me/demos/html5-web-storage/web_storage.html這裏是詳細的文章http://www.amitpatil.me/introduction-to-html5-feature-web-storage/
這是行不通的。用戶進入該頁面,將密鑰123存儲在存儲器中。現在用戶點擊刷新按鈕,鍵123存在,所以你不做這項工作,但你真的應該因爲這是刷新而不是歷史導航。 – aleemb
你是對的,我沒有想過這種可能性:(還有另一種解決方案window.onbeforeunload = function(){}但也沒有在「刷新」,窗口刷新和回/下一個按鈕調用此功能,所以我想它不是 –
只是一個想法:
瀏覽器通常記住的輸入值,所以當你導航回他們將出席會議。
您可以使用輸入(使用CSS隱藏)。
的Onload檢查輸入的電流值也有一個特殊的值(必須在服務器端生成的這個值,所以當你使用後退/前進也不會刷新)
<script type="text/javascript">
jQuery(
function($)
{
if($('#history').val()==$('#history').data('value'))
{
alert('you did use back/forward');
}
else
{
$('#history').val($('#history').data('value'));
alert('you did not use back/forward');
}
}
);
</script>
<input style="display:none" id="history" data-value="<?php echo time();?>"/>
當用戶使用後退/前進,輸入值等於數據值屬性(但不是當用戶點擊F5時,因爲那麼數據值屬性也會刷新)。
LocalStorage將很高興在這裏。與cookie類似,但只存在於客戶端,Nothing與頭部一起發送。其他人表示相同或相似,我希望這個例子能告訴你這是多麼容易。
因此,您將設置變量的值爲當前頁面的標識符,並將其引用到變量A)存在,並將B)設置爲第一頁。
<script>
if(!localStorage["lastPage"] && localStorage["lastPage"] != theFirstPageIdentifier) {
// this is the first view
localStorage["lastPage"] = currentPageIdentifier;
}
</script>
注意:localStorage不適用於舊版IE(也許是其他版本),並且cookie可用於此處作爲回退。相同的概念。
我覺得你需要一個例子來向你展示這個工作:http://rlemon.github.com/demos/12323999/page1.html查看源代碼。
回到/轉發你的意思是在瀏覽器歷史記錄中回退/轉發嗎?如果是這樣,這是不可能通過Javascript來檢測。 –
您可以在本地存儲中存儲一些有點標誌。這就是我能想到的所有... – elclanrs
@HenrikAmmer,我澄清了這個問題。我希望可能有一些方法來實現這一點。 – aleemb