如何从过去的多个页面 JavaScript 中获取字符串 URL
How to get string URL from multiple past pages JavaScript
我对 JavaScript 很陌生。我正在尝试制作一个网络应用程序,其中一个简单的后退按钮将转到我正在寻找的特定页面,其中包含“搜索”一词。我不知道确切的 URL,因为 URL 中的参数发生了变化,我需要使其与用户的需求保持一致。但是这个按钮应该返回到那个页面,不管点击的其他链接是什么。
例如:
如果我点击
Home Page
Main Page
Page 1
Page 1.3
Back
我希望返回始终使用之前的确切参数将我带到主页,而不是主页。
我尝试了以下方法:
按钮本身
movieTableBodyElement.append('<a href="#" onclick="javascript:goBackHelper();">' + " << Back" + '</a>'); // Building the HTML button, calls the goBackHelper() function
function goBackHelper()
{
// checks if the page directly behind is the Main Page with "search"
if(document.referrer.includes("search"))
{
// if its the main page, exit the function and end recursive call
window.history.go(-1);
}
else
{
// it is not the last page, so go to the past page and check again
window.history.go(-1);
goBackFunction();
}
}
但这会将我带到第一个主页。我以为 document.referrer 会让我过去 URL,但它似乎对我不起作用。有没有办法从过去的页面中获取 URL?因此,如果我在第 2 页,我可以获取所有 URL 并搜索主页吗?非常感谢任何帮助!
我也是 Stack Overflow 的新手,所以如果有任何说明,请随时告诉我!
document.referrer
在所有情况下都与实际的 URL 不同。
最好的办法是将 URL 存储在 sessionStorage
中。
将这段代码添加到您的网页:
if (sessionStorage.getItem("locationHistory") !== null) {
var locationHistoryArray = JSON.parse(sessionStorage.getItem("locationHistory"));
locationHistoryArray.push(window.location.href);
sessionStorage.setItem("locationHistory", JSON.stringify(locationHistoryArray));
} else {
var locationHistoryArray = [];
locationHistoryArray.push(window.location.href);
sessionStorage.setItem("locationHistory", JSON.stringify(locationHistoryArray));
}
这是您的 goBackHelper()
功能:
function goBackHelper() {
var searchString = 'search'; //modify this
var locationHistoryArray = JSON.parse(sessionStorage.getItem("locationHistory"));
for (i = 0; i < locationHistoryArray.length; i++) {
if (locationHistoryArray[i].includes(searchString)) {
window.location.assign(locationHistoryArray[i]);
break;
}
}
}
了解 document.referrer
here。
我对 JavaScript 很陌生。我正在尝试制作一个网络应用程序,其中一个简单的后退按钮将转到我正在寻找的特定页面,其中包含“搜索”一词。我不知道确切的 URL,因为 URL 中的参数发生了变化,我需要使其与用户的需求保持一致。但是这个按钮应该返回到那个页面,不管点击的其他链接是什么。 例如: 如果我点击
Home Page
Main Page
Page 1
Page 1.3
Back
我希望返回始终使用之前的确切参数将我带到主页,而不是主页。
我尝试了以下方法: 按钮本身
movieTableBodyElement.append('<a href="#" onclick="javascript:goBackHelper();">' + " << Back" + '</a>'); // Building the HTML button, calls the goBackHelper() function
function goBackHelper()
{
// checks if the page directly behind is the Main Page with "search"
if(document.referrer.includes("search"))
{
// if its the main page, exit the function and end recursive call
window.history.go(-1);
}
else
{
// it is not the last page, so go to the past page and check again
window.history.go(-1);
goBackFunction();
}
}
但这会将我带到第一个主页。我以为 document.referrer 会让我过去 URL,但它似乎对我不起作用。有没有办法从过去的页面中获取 URL?因此,如果我在第 2 页,我可以获取所有 URL 并搜索主页吗?非常感谢任何帮助!
我也是 Stack Overflow 的新手,所以如果有任何说明,请随时告诉我!
document.referrer
在所有情况下都与实际的 URL 不同。
最好的办法是将 URL 存储在 sessionStorage
中。
将这段代码添加到您的网页:
if (sessionStorage.getItem("locationHistory") !== null) {
var locationHistoryArray = JSON.parse(sessionStorage.getItem("locationHistory"));
locationHistoryArray.push(window.location.href);
sessionStorage.setItem("locationHistory", JSON.stringify(locationHistoryArray));
} else {
var locationHistoryArray = [];
locationHistoryArray.push(window.location.href);
sessionStorage.setItem("locationHistory", JSON.stringify(locationHistoryArray));
}
这是您的 goBackHelper()
功能:
function goBackHelper() {
var searchString = 'search'; //modify this
var locationHistoryArray = JSON.parse(sessionStorage.getItem("locationHistory"));
for (i = 0; i < locationHistoryArray.length; i++) {
if (locationHistoryArray[i].includes(searchString)) {
window.location.assign(locationHistoryArray[i]);
break;
}
}
}
了解 document.referrer
here。