我有一個網站,當用戶遵循一個內部鏈接時,我想將一些額外的信息傳遞給一個新頁面,因此目標頁面上的JavaScript可以做一些有用的突出顯示。JavaScript:如何將附加信息傳遞給源頁面?
有一個選項可以通過鏈接參數(GET)傳遞這些信息,但它會生成大量虛擬重複頁面並破壞漂亮的URL概念。另一種方法是使用AJAX製作web應用程序,但它也會將內容綁定到單個URL。
如何在導航期間透明地將一些信息傳遞到新頁面而不會弄亂網站的URL結構?
我有一個網站,當用戶遵循一個內部鏈接時,我想將一些額外的信息傳遞給一個新頁面,因此目標頁面上的JavaScript可以做一些有用的突出顯示。JavaScript:如何將附加信息傳遞給源頁面?
有一個選項可以通過鏈接參數(GET)傳遞這些信息,但它會生成大量虛擬重複頁面並破壞漂亮的URL概念。另一種方法是使用AJAX製作web應用程序,但它也會將內容綁定到單個URL。
如何在導航期間透明地將一些信息傳遞到新頁面而不會弄亂網站的URL結構?
所以你有幾個選擇。
表單提交
首先選擇用後的數據形式。添加一個隱藏的形式,對錨點擊捕獲click事件,設定您要發送到下一個頁面,並提交表單值的隱藏字段。在下一頁上,閱讀後端的帖子參數並更新頁面。
本地存儲
在錨的點擊,設定的localStorage到要出現下一個頁面上的值。加載下一頁時,請閱讀localStorage值並更新頁面。注:服務器將無法訪問該值
Ajax和pushState的
使用Ajax提交表單。當Ajax調用返回時,用window.history.pushState
更新你要顯示給用戶的任何URL鏈接。
這是迄今爲止我探索的所有選項的絕對。當時選擇** sessionStorage **。 –
你是什麼意思將它「綁定到一個單一的網址」? AJAX請求是我首先想到的解決這個問題的方法。您不必使用頁面的url來發出ajax請求,您可以根據應用程序中存在的任何條件在JavaScript內部構建url。
除了AJAX和在URL中傳遞參數,我唯一能想到的其他事情就是使用Cookies。如果用戶禁用了Cookie,那當然會遇到問題。我認爲對你的服務器的Ajax調用是處理這個問題的最可靠的方式。
您可以將數據存儲在本地存儲或會話存儲中,然後再在目標頁面上重新找回。
一個未提到的選項是創建一個髒 URL:
/目的地/ 的param1/VALUE1/...
然後在剝離附加參數服務器端和重定向:
/DES tination
保持加法運算值存儲在服務器側(例如通過會議)。我仍然更喜歡在實際應用中使用sessionStorage,但無論如何它值得一提。
POST請求...但如果用戶再次訪問該頁面(通過獲取書籤URL的請求),它將不會有數據... – epascarello
這兩個頁面都在同一個域上嗎? – guest271314
@epascarello這沒關係。關鍵是數據是暫時的。在訪問之間不需要堅持。 –