2017-03-06 60 views
0

我有一個網站,當用戶遵循一個內部鏈接時,我想將一些額外的信息傳遞給一個新頁面,因此目標頁面上的JavaScript可以做一些有用的突出顯示。JavaScript:如何將附加信息傳遞給源頁面?

有一個選項可以通過鏈接參數(GET)傳遞這些信息,但它會生成大量虛擬重複頁面並破壞漂亮的URL概念。另一種方法是使用AJAX製作web應用程序,但它也會將內容綁定到單個URL。

如何在導航期間透明地將一些信息傳遞到新頁面而不會弄亂網站的URL結構?

+0

POST請求...但如果用戶再次訪問該頁面(通過獲取書籤URL的請求),它將不會有數據... – epascarello

+0

這兩個頁面都在同一個域上嗎? – guest271314

+0

@epascarello這沒關係。關鍵是數據是暫時的。在訪問之間不需要堅持。 –

回答

1

所以你有幾個選擇。

表單提交

首先選擇用後的數據形式。添加一個隱藏的形式,對錨點擊捕獲click事件,設定您要發送到下一個頁面,並提交表單值的隱藏字段。在下一頁上,閱讀後端的帖子參數並更新頁面。

本地存儲

在錨的點擊,設定的localStorage到要出現下一個頁面上的值。加載下一頁時,請閱讀localStorage值並更新頁面。注:服務器將無法訪問該值

Ajax和pushState的

使用Ajax提交表單。當Ajax調用返回時,用window.history.pushState更新你要顯示給用戶的任何URL鏈接。

+0

這是迄今爲止我探索的所有選項的絕對。當時選擇** sessionStorage **。 –

-1

你是什麼意思將它「綁定到一個單一的網址」? AJAX請求是我首先想到的解決這個問題的方法。您不必使用頁面的url來發出ajax請求,您可以根據應用程序中存在的任何條件在JavaScript內部構建url。

除了AJAX和在URL中傳遞參數,我唯一能想到的其他事情就是使用Cookies。如果用戶禁用了Cookie,那當然會遇到問題。我認爲對你的服務器的Ajax調用是處理這個問題的最可靠的方式。

3

您可以將數據存儲在本地存儲或會話存儲中,然後再在目標頁面上重新找回。

0

一個未提到的選項是創建一個 URL:

/目的地/ 的param1/VALUE1/...

然後在剝離附加參數服務器端和重定向:

/DES tination

保持加法運算值存儲在服務器側(例如通過會議)。我仍然更喜歡在實際應用中使用sessionStorage,但無論如何它值得一提。