Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从多个页面追加查询字符串_Javascript - Fatal编程技术网

Javascript 从多个页面追加查询字符串

Javascript 从多个页面追加查询字符串,javascript,Javascript,我目前对此感到困惑。我已经窥探了一段时间,并没有找到任何具体的答案,只是用JS来做这件事,所以我的问题是这样的。如果我正在浏览多个页面,并且希望保留附加到url之前的查询字符串,那么最简单的方法是什么 我认为没有简单的方法。每次编写URL或创建表单时,您都必须考虑当前的查询参数。您是否需要此参数 var url1 = "...", url2 = "..."; var query1 = url1.split("#")[0].split("?").slice(1).join("?"); if (!

我目前对此感到困惑。我已经窥探了一段时间,并没有找到任何具体的答案,只是用JS来做这件事,所以我的问题是这样的。如果我正在浏览多个页面,并且希望保留附加到url之前的查询字符串,那么最简单的方法是什么

我认为没有简单的方法。每次编写URL或创建表单时,您都必须考虑当前的查询参数。

您是否需要此参数

var url1 = "...", url2 = "...";

var query1 = url1.split("#")[0].split("?").slice(1).join("?");
if (!query1)
    return url2;
var parts2 = url2.split("#");
parts2[0] +=  (parts2[0].indexOf("?")>-1 ? "&" : "?" ) + query1;
return parts2.join("#");

这将从url1提取查询字符串,并将其附加到url2的查询字符串,返回新的url2。

如果用户导航的方式是使用页面内的链接,则可以执行此操作

在给定的html页面中,页面中运行的Javascript可以通过window.search属性查看url的查询参数

然后使用JS修改页面的所有锚元素的href链接,将已经存在的查询参数添加到链接中


结果:单击页面中的链接将导致新页面同时具有现有和新的查询参数。

您可以使用Cookie。请参考我之前考虑过的,但是如果有人清除了他们的缓存,它将丢失到目前为止的所有数据。@CharlesLillo:这就是清除缓存的目的。。。查询字符串不是用来传输数据的,你想实现什么?我知道这一点。。。我只是想知道我是否忽略了一种简单的方法。post get方法可以工作,但我不知道我是否可以在我正在做的事情中使用php。我正在使用jquerymobile开发一个移动应用程序,并在用户嵌套时在页面之间存储数据。在我看来,最快的方法是查询字符串,但这实际上不适用于嵌套。欢迎使用堆栈溢出!记住对所有有用的答案进行投票,包括对他人问题的投票。并选中“接受最能解决您自己问题的答案”。我能想到的唯一方法是编写一个脚本,抓住下一个查询字符串并将其附加到最后一个查询字符串中,不断地这样做。@CharlesLillo您能详细说明一下吗?按照@LarryK说的做,但我试图避免这样做。这是我最初的想法。如果没有更简单的方法,我可能最终会这样做。我觉得这是唯一的方法。你唯一的选择就是这个,cookies,或者在服务器上维护状态。请注意,人们可以并且确实可以编辑URL。此外,url/查询参数长度也有限制。