我目前有一個網站,它使用類似購物車的系統暫時進行查詢。我目前使用Javascript onunload功能來阻止用戶離開頁面,並將他/她的查詢放在購物車中。僅當瀏覽器關閉時才顯示onunload
我唯一的問題是,購物車跨越多個頁面,因爲它是基於會話的,但每當我嘗試更改頁面時,onunload甚至彈出並且可能非常煩人。
是否可以將onunload事件設置爲瀏覽器上的關閉按鈕,以便它只在嘗試關閉它時才顯示?
我希望我們能找到的東西作爲重新設計的網站是不是一個真正的選擇,
謝謝
我目前有一個網站,它使用類似購物車的系統暫時進行查詢。我目前使用Javascript onunload功能來阻止用戶離開頁面,並將他/她的查詢放在購物車中。僅當瀏覽器關閉時才顯示onunload
我唯一的問題是,購物車跨越多個頁面,因爲它是基於會話的,但每當我嘗試更改頁面時,onunload甚至彈出並且可能非常煩人。
是否可以將onunload事件設置爲瀏覽器上的關閉按鈕,以便它只在嘗試關閉它時才顯示?
我希望我們能找到的東西作爲重新設計的網站是不是一個真正的選擇,
謝謝
也許你可以使用一個全局變量來告訴您是否離開頁面的下一個步入購物車。
例如,在每個購物車頁面中「下一個」按鈕的onclick
或onsubmit
事件中,可以設置一個全局變量,指示您應讓用戶離開頁面。然後在onunload
事件中,您將檢查是否已設置此全局,僅在沒有設置時顯示警告。
精彩評論,我應該想到這個!我想知道是否添加一個新的變量到PHP來捕捉網址會減慢它,這可能會隱藏或顯示JavaScript?如果這是有道理的。 – Alex 2013-03-14 09:11:21
如果你封裝了變量和所有在同一[自調用函數]中使用它的處理程序,它不需要是全局的(http://stackoverflow.com/a/3597102/778975 )。除非需要,否則最好不要在JS中公開全局變量,特別是如果您將使用由您網頁上其他人編寫的JS(JS庫,社交小部件等)。 – 2013-03-14 09:38:40
臨時查詢存儲在哪裏?他們如何被傳遞到下一頁?如果您將它們存儲在[會話存儲](https://developer.mozilla.org/en-US/docs/DOM/Storage#sessionStorage)中,則它們將在整個會話中可用,並且在瀏覽器/選項卡爲時會自動消失關閉。那麼不需要使用'onunload'。 – 2013-03-14 09:11:56
它們存儲在一個會話中,每個頁面都有一個類似購物車的div,它只是加載和格式化會話。該網站不會打開新窗口或標籤。 – Alex 2013-03-14 09:16:20
當你在一個會話中說,我從你的評論中假設你的意思是一個PHP會話?這將有助於更具體,因爲您沒有在問題中提到PHP,也沒有用PHP標記它。 – 2013-03-14 09:19:39