在没有服务器端干扰的情况下将javascript变量传递到下一页
Passing a javascript variable on to the next page WITHOUT server-side interference?
我正在用PhoneGap制作一个网络应用程序。这是我目前的障碍:
在第一页,用户选择纬度和经度,然后点击继续。通过在表单上执行一些漂亮的GET操作,并在下一页上使用JavaScriptURL解析器,就可以向下一页传递lat和lng坐标。在这个新页面上,用户被要求输入半径。通过同样的方法,半径被传递到最终页面,该页面显示一个谷歌地图,上面有一个由坐标和半径组成的圆圈。
但问题是,当我将半径传递到最后一页时,显然只有通过了半径。我如何从第二页开始传递lat和lng,这不是表单信息的一部分?他们已经建立了。我知道显而易见的解决方案是将所有三个变量放在一页上,但出于我无法控制的愚蠢原因,它需要这样。
因此,问题是:如何将javascript中作为变量存在的信息传递到下一页?它不是形式的一部分,只是一个变量。
您所需要做的就是向表单(<input type="hidden" />
)添加几个隐藏的输入元素。
这可以通过多种方式实现。最短的是使用库(示例代码恰好是jQuery):
$('<input type="hidden" name="lat" />').val(latitudeValue).appendTo(formSelector);
$('<input type="hidden" name="lng" />').val(longitudeValue).appendTo(formSelector);
原始JS有点长,但不是特别复杂:
//I haven't checked this, so some cross-browser tweaking might be necessary
var lat,
lng,
form;
lat = document.createElement('input');
lat.type = 'hidden';
lat.value = latitudeValue;
lng = document.createElement('input');
lng.type = 'hidden';
lng.value = longitudeValue;
form = document.querySelector(formSelector);
form.appendChild(lat);
form.appendChild(lng);
latitudeValue
、longitudeValue
和formSelector
是必须在页面上下文中定义的变量。您也可以使用不同的参数名称,例如name="longitude"
。
听起来你真的应该使用AJAX来更改页面的内容,这样你就不会连续发出GET请求了。相反,你可以简单地根据用户在流程中的哪一步来交换页面的主要内容。这将消除进行任何URL解析的必要性(这很容易出错)。
您可以在Javascript中访问get数据。因此,只需将您的数据作为URL中的get数据传递到下一个页面,并使用Javascript按如下方式进行解析。
如果您的URL末尾包含?foo=1&bar=2
,则可以使用解析foo和bar
var parts = window.location.search.substr(1).split("&");
var $_GET = {};
for (var i = 0; i < parts.length; i++) {
var temp = parts[i].split("=");
$_GET[decodeURIComponent(temp[0])] = decodeURIComponent(temp[1]);
}
alert($_GET['foo']); // 1
alert($_GET.bar); // 2
更简单的选择是使用Javascript/jQuery创建一个cookie并将值添加到其中。因此,您可以添加每个页面上的所有值,然后最终从cookie中检索您想要的数据。您不使用服务器端脚本,但您可以获得所需的所有值。
- 如何获取不属于我项目的上一页的URL
- 如何在Facebook上的iframe应用程序中使后退按钮返回到上一页
- 使用Booklet Jquery插件,我如何验证最后一页是否显示
- 如何在一页网站中使用PHP重定向到一个页面
- 翻开一页'的javascript变量更改为提要
- 获取JavaScriptvar的值并将其赋值's值转换为另一页中的PHP变量
- 将点击变量发送到下一页
- 是否可以在页面中设置本地存储或会话变量 asp.net 并在另一页面上的javascript中读取它
- 如何保存 JavaScript 变量并使用 jQuery 将它们传递到下一页
- 如何使用 JavaScript 将变量的值传递到下一页
- JavaScript 将变量传递到下一页(没有 PHP)
- 当应该从先前设置的变量打开下一页时,不会加载下一页
- 在没有服务器端干扰的情况下将javascript变量传递到下一页
- Javascript存储变量以供下一页使用
- 变量丢失发送在query字符串从上一页在php中刷新
- PHP将变量传递到下一页
- 上一页中要在表单中使用的Javascript变量
- 如何通过ajax调用从上一页发送php页面中的变量
- 使用上一页 ASP 页中的变量
- 如何使用 cookie 将变量传递到下一页