使用history.back单击获取Querystring

时间:2014-05-21 07:28:19

标签: javascript jquery html5 browser-history

我要求我将查询字符串从demo1.html传递到demo2.html。 在demo2.html中,有后退按钮(history.back())所以当用户单击后退按钮时,它将重定向到demo1.html。在这个demo1.html中,我想使用javascript或jquery获取查询字符串值或上一页网址。

请在下面找到演示html脚本供您参考。

我需要demo1中的demo2页面的查询字符串值

demo1.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title of the document</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<script>
function display()
{
    var wind =  document.referrer;
    var preUrl = window.location.protocol;
    alert(wind);alert(preUrl);
}
</script>
<body>
Search Content of the document......
<a href="demo2.html?email=shiva@gmail.com">Search</a>
<a href="#" onclick="display()">Display</a>
</body>

</html>

demo2.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title of the document</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<script>
function goBack() { 
    window.history.back();
    return false;
}
</script>
<body>
demo 2 Content of the document......
<a href="#" onclick="goBack()">Back</a>
</body>

</html>

Reards
希瓦

2 个答案:

答案 0 :(得分:1)

将查询字符串保存在充当后退按钮的href中,然后使用location.replace()

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title of the document</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>    
<body>
demo 2 Content of the document......
<a href="demo1.html?querystring-on-demo2-appended-here" onclick="location.replace(this.href); return false">Back</a>
</body>

</html>

答案 1 :(得分:1)

a)使用ny user3036342提供的解决方案。这不会使实际的浏览器后退按钮按照您的意愿工作。

b)保留查询字符串并改为使用cookie。在demo2中设置cookie并确保demo1重新加载(我发现this但可能有更好的方法)

c)如果页面位于同一个域中,您可以使用History API和AJAX在demo1和demo2之间切换。然后,您可以完全控制用户按后退/前进时发生的情况,但需要一些reading才能理解。