3

我有一个使用 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给另一个人。当第二个人去 sharedURL时,RandomValue是第一个人的价值 - 以便第二个人看到与第一个人相同的“字符串”。

我对网页设计和网页编程相当陌生,所以我不知道这是否需要在服务器端或客户端处理。

我假设我需要传递一个类似的 url,page1.html?RandomValue1=1&RandomValue2=3但我无法让页面然后设置这些变量并加载。这可以在 内完成JavaScript吗?

4

4 回答 4

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);
于 2013-01-23T20:56:44.267 回答
1

你的假设是正确的。您需要将这些变量作为参数放入 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 库,可以帮助您更快地到达那里。它与哈希 ('#') 一起使用,并会自动为您解析(取消参数化)参数,将它们分配给您可以使用的字符串/对象等。

http://benalman.com/projects/jquery-bbq-plugin/

于 2013-01-23T20:52:57.933 回答
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'];

于 2013-01-23T20:50:39.437 回答
0

您将需要使用服务器来协调两个客户端之间的数据。换句话说,第一个用户需要将他们的随机值提交给服务器——这可以使用 GET URL 来完成,page1.html?RandomValue1=1尽管您可能想研究 POST 请求。

无论如何,然后第二个用户可以转到共享 URL 以查看存储在服务器上的值。

于 2013-01-23T20:52:48.210 回答