![](/img/trans.png)
[英]i want to make a todo list but i m stuck at the starting, where am i getting wrong in this code?
[英]Where am I in the history list?
我的目標是在一頁應用程序中創建一個Javascript函數,該函數可以告訴我后退按鈕是否可以執行任何操作。
我以為window.history.length
會幫助我:如果長度與應用程序啟動時的長度相同,那么您就處於“開始”的位置,並且該功能不應執行任何操作。
但不是。 想象一下,應用程序中只有一個內部鏈接#a
。 當您從新標簽頁啟動應用時,瀏覽器位於#
,長度為1,並且您知道后退按鈕不會執行任何操作。 如果單擊#a
,則轉到#a
,長度為2,並且您知道后退按鈕將起作用。
然后,可悲的是,如果您確實按了后退按鈕,則返回到#
,但是長度仍然為2,因為#a
在“未來歷史”中。
幫幫我。 我如何知道后退按鈕當前是否處於“活動”狀態? 這真殺了我。
(由於歷史記錄中可能存在來自完全不同的站點的URL,因此問題有點復雜。對我來說,即使后退按鈕本身可以工作,也應將其視為“無效”)。
假設您的用戶從不手動修改網址,那么他們導航的唯一方式是
因此,您可以使用自己的歷史記錄進行跟蹤。 每次單擊按鈕時,請存儲該按鈕所在的頁面以及該按鈕被單擊的位置(可能在本地存儲中)。 然后,當它再次加載時,您只需單擊按鈕/鏈接或后退即可測試是否已到達用戶所在的位置。 如果是回擊,請減少您的歷史記錄。 如果您沒有記錄的歷史記錄,則知道后退按鈕將不起作用或進入其他站點。
解決方案是將路線更改存儲在您的應用程序中,並保留自己的狀態歷史記錄。 這是由於以下原因:
出於安全原因,History對象不允許非特權代碼訪問會話歷史記錄中其他頁面的URL,但允許它導航會話歷史記錄。
為此,您需要使用$ locationChangeSuccess事件。 請參閱: 如何使用angular檢測瀏覽器的后退按鈕單擊事件? 用於檢測后退按鈕,如果不是后退按鈕,則只需將其附加到要跟蹤的數組即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.