我有一个页面,使用javascript Math.random()
设置一些变量,如图所示。
var RandomValue1 = Math.floor(Math.random() * 5);
var RandomValue2 = Math.floor(Math.random() * 6);
var string = array1[RandomValue1];
var string = array2[RandomValue2];
我想允许用户将RandomValue
值通过URL
传递给其他人。当第二个人转到共享URL
时,RandomValue
是第一个人的值 - 这样第二个人就会看到与第一个人相同的“字符串”。
我对网页设计和网络编程都很陌生,所以我不知道这是否需要在服务器端或客户端进行处理。
我假设我需要传递类似page1.html?RandomValue1=1&RandomValue2=3
的网址,但我无法获取页面然后设置这些变量并加载。可以在JavaScript
吗?
答案 0 :(得分:2)
您可以使用javascript阅读GET变量。这是一个示例函数(source):
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
用法:
var first = getUrlVars()["id"];
var second = getUrlVars()["page"];
alert(first);
alert(second);
答案 1 :(得分:1)
你的假设是正确的。您需要将这些变量作为PARAMETERS放入URL中。我建议使用“#”而不是实际参数,这样您就不会每次都更新页面,因此URL看起来像mydomain.com/page.html#RandomValue1=1&RandomValue2=3.
您可以使用Javascript通过window.location.href方法获取/设置这些参数。在页面加载时,Javascript将检查是否有“#”并在URL中解析后面的任何内容。页面加载后,可以使用Javascript更新这些参数。
有关如何使用window.location的完整文档,请参阅以下链接:
https://developer.mozilla.org/en-US/docs/DOM/window.location
哦,这是一个javascript库,可能会帮助您更快地到达目的地。它与散列('#')一起使用,并将为您自动解析(取消参数化)参数,将它们分配给您可以使用的字符串/对象等。
答案 2 :(得分:0)
我会用PHP做。
您可以在页面上放置一个隐藏字段(在表单中)。将表单方法设置为GET,并将操作设置为另一个PHP页面。
<form id="form" name="form" action="my_page.php" method="GET">
<input id="myId" name="myName" type="hidden />
</form>
在PHP页面中,您可以使用$ _GET对象管理变量。
<?php
if(isset($_GET['myName'])){
//do something with value;
}
?>
请记住,GET和POST变量基于HTML元素的name属性。在我的示例中,隐藏字段的名称为myName
,因此当我想引用它时,我使用$_GET['myName'];
答案 3 :(得分:0)
您需要使用服务器来协调两个客户端之间的数据。换句话说,第一个用户需要将他们的随机值提交给服务器 - 这可以使用像page1.html?RandomValue1=1
这样的GET URL来完成,尽管您可能想要研究POST请求。
无论如何,第二个用户可以转到共享URL以查看存储在服务器上的值。