我正在嘗試讓用戶在注冊后重定向回他正在閱讀的博客并嘗試了多種方法,但用戶被重定向到倒數第二個博客或同一頁面(注冊)。詳情如下。
我需要幫助的網站鏈接
- http://mintymind.flywheelsites.com/
目標
- 用戶閱讀 1 個博客,點擊第二個博客并被重定向到注冊頁面。
- 用戶提供他的電子郵件并注冊。
- 注冊頁面重繪 并顯示后退按鈕(轉到上一個用戶正在閱讀的博客)
發生了什么
出于某種原因,用戶被重定向到的“最后一個博客”沒有存盤在
javascript: history.go(-1)或window.history.back()當我
-1在上面提到的歷史功能中使用時,它停留在同一個標??志頁面上,可能是因為它被重繪 了,但是當我什至-2在上述歷史功能中使用時,它會轉到“2nd last blog”用戶閱讀。
我嘗試過的其他解決方案
if (!sessionStorage.alreadyClicked) {
var referrer = document.referrer;
console.log(referrer);
localStorage.setItem("protectedReferrer", referrer);
var protectedReferrerForInsertion = localStorage.getItem("protectedReferrer");
console.log("Saved Variable was" protectedReferrerForInsertion);
}
document.querySelector("#back-button-referrer a").setAttribute("href", protectedReferrerForInsertion);
uj5u.com熱心網友回復:
重定向 URL 不會添加到歷史記錄或參考者中。當 URL 最初被重定向時,您不能依靠這些來記錄將某人送回的位置。
他們解決這個問題的方法是在重定向到注冊頁面時使用頁面的 URL 引數回傳。換句話說:/second-blog-article應該重定向到/signup?back=/second-blog-article. 該back引數需要在整個注冊程序中傳遞,然后在注冊完成后重定向到它。
uj5u.com熱心網友回復:
嘿,使用 session 解決了我的問題。這是代碼。
jQuery(document).ready(function( $ ){
if (top.location.pathname === '/signup/'){
var sessionCheck = sessionStorage.getItem('visited');
if(sessionCheck == null || 0 ){
sessionStorage.setItem("visited", 0);
}
var visited = sessionStorage.getItem('visited');
if (visited == 0) {
var referrer = document.referrer;
sessionStorage.setItem("localReferrer", referrer);
sessionStorage.getItem('localReferrer');
$("#back-button-referrer a").attr("href", sessionStorage.getItem('localReferrer'));
sessionStorage.setItem("visited", 1);
}
else{
$("#back-button-referrer a").attr("href", sessionStorage.getItem('localReferrer'));
}
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/364466.html
標籤:javascript 重定向 事件处理 本地存储 浏览器历史
上一篇:重定向到子檔案夾
