由于这个问题真的很老,我将说明这个问题以使其更清楚。希望我也没有误解所提出的问题。
案例:
- 我有一个网站。这个网站有一个表格。该表格位于 2 个(或更多)网页上:Form p001 和 Form p002(... Form pX)。
- 在带有 Form p001 的页面上,有一个按钮,其中包含指向 Form p002 所在页面的链接。
- 在表单最后一部分的页面上,在我的例子中是 Form p002,有提交按钮。当您单击将您发送到页面 Form p001 页面或您之前在我网站上的任何页面的按钮时,提交按钮会将您重定向到 我的网站上 的任何页面您加载了页面Form p001。
- 想象以下 3 个 example 案例(显然有超过 3 个可能的案例,只是为了简短起见)。
- 示例 01:我在我网站的 Page X 上。有表单的按钮,我单击它并转到表单页面第 1 部分 (Form p001)。我单击按钮 Part-02 以转到带有表单 (Form p002) 的第 2 部分的页面。当我完成表单的第二部分时,我点击提交。这会将我重定向到我网站上的 Page X
- 示例 02:在浏览了我网站上的几个页面后,我现在位于 Page Y。有表单的按钮,我右键单击它并在新选项卡(选项卡 02)中打开表单页面第 1 部分 (Form p001)。我单击按钮 Part-02 以转到带有表单 (Form p002) 的第 2 部分的页面。当我完成表单的第二部分时,我点击提交。这会将我重定向回我网站上的 Page Y(标签 02 内)。
- 示例 03:在浏览了我网站上的几个页面后,我现在位于 Page Z。有表单的按钮,我右键单击它并在新选项卡(选项卡 02)中打开表单页面第 1 部分 (Form p001)。我右键单击按钮 Part-02 以转到新选项卡(选项卡 03)内包含表单 (Form p002) 的第 2 部分的页面。当我完成表单的第二部分时,我点击提交。这会将我重定向回我网站上的 Page Z(标签 03 内)。
如果此人已加载表单的第一页(表单 p001),通过将表单页面的链接直接放在新选项卡或窗口内的浏览器的 LOCATION/ADDRESS 栏中,那么我们假设您将被重定向到主页。这与这个问题并不真正相关。
回答:
您可以使用 window.localStorage 和 document.referrer
您可以使用 window.localStorage 存储原始页面,即我在进入表单第一页之前所在的网站上的页面。测试以下代码。
somePageOnMyWebsite.html(页面 X、Y 或 Z)
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<h1>A Random page on My Website</h1>
<p>My paragraph.</p>
<a type="button" href="formp001.html" target="_blank">Click to form</a>
</body>
</html>
formp001.html
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
var originalPage = document.referrer;
if( originalPage != null)
window.localStorage.setItem("redirectPage", originalPage);
else
window.localStorage.setItem("redirectPage", "");
});
</script>
</head>
<body>
<h1>Form p001</h1>
<form action="formp002.html" target="_self" method="post">
<input type="submit" value="Go to Form p002" />
</form>
</body>
</html>
formp002.html
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
if (window.localStorage.getItem("redirectPage") === null || window.localStorage.getItem("redirectPage") === ""){
// The form was not accessed by clicking on a link on a page on my website, so just redirect to my homepage ...
document.getElementsByTagName("FORM")[0].setAttribute("action", "./hometest.html");
} else{
document.getElementsByTagName("FORM")[0].setAttribute("action", window.localStorage.redirectPage);
}
});
</script>
</head>
<body>
<h1>Form p002</h1>
<form action="#" target="_self" method="post">
<input type="submit" value="Submit" />
</form>
</body>
</html>
hometest.html(我网站的主页)
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<h1>HOME PAGE</h1>
<p>My home</p>
</body>
</html>
我的回答基于 birgir 对 Luc 的回答的评论。