0

所以你知道有时网站的名字后面会有一个小“?variable=value”的东西吗?我该如何使用它?我很确定A)变量没有像它应该的那样定义或B)这部分代码存在问题:

if (! variable) {
  var variable;
}

那么我该怎么做呢?

编辑:这是我试图运行的完整脚本,它的目的是为了一个简单的密码保护页面,但我想允许密码在 url 中传递,所以在切换页面时你不必重新输入密码不断。

  <script>
      var m = location.href.match(/[?&]variable=([^&]*)/),
      password;
      if (m) {
        password = m[1];
      }
      var pass1="password";
      var pass2="abcd";
      if (password!==pass1 || password!==pass2) {
        password=prompt('Please enter your password to view this page!',' ');
        if (password==pass1 || password==pass2) {
          alert('Password Correct!');
        } else {
          history.go(-1);
        }
      }
  </script>

无论 url 中有什么,这段代码都会提示我。

4

2 回答 2

7

查询字符串中的参数不会自动传递给 Javascript;它们通常用于服务器端脚本。要获得一个变量,您可以这样做:

var m = location.href.match(/[?&]variable=([^&]*)/),
password;

if (m) {
    password = m[1];
}
于 2013-03-07T04:19:42.410 回答
1

你可以像这样传递变量:

<script language="javascript" type="text/javascript">
var scrt_var = 10; 
</script>
<a href="2.html" onclick="location.href=this.href+'?key='+scrt_var;return false;">Link</a>

或像这样:

将 id 属性放在锚元素上

 <a id="link2">

在页面加载事件上设置 href 属性:

var scrt_var = 10;
var strLink = "2.html&Key=" + scrt_var;
document.getElementById("link2").setAttribute("href",strLink);
于 2013-03-07T04:19:12.613 回答