javascript url用空格和括号解析

时间:2017-04-10 04:20:15

标签: javascript parsing

如果参数中有空格或括号,有人可以告诉我为什么这个脚本不会预填充表单。它适用于字母,数字和下划线,但是空格和括号会停止工作。这是代码。

<!DOCTYPE>
<html>
<head></head>
<body>
  <input name="name_f" id="name_f-0" type="text"/><br/>
  <input name="name_1" id="name_1-0" type="text"/><br/>
  <input name="email" id="email-0" type="text"/><br/>
  <input name="password" id="password" type="text"/><br/>
  <input name="contact" id="contact" type="text"/>
  <script type="text/javascript">
  function _id(e) {
    return document.getElementById(e)
  }

  var QueryString = function() {
    // This function is anonymous, is executed immediately and 
    // the return value is assigned to QueryString!
    var query_string = {};
    var query = window.location.search.substring(1);
    var vars = query.split("&");

    for (var i = 0; i < vars.length; i++) {
      var pair = vars[i].split("=");

      // If first entry with this name
      if (typeof query_string[pair[0]] === "undefined") {
        query_string[pair[0]] = decodeURIComponent(pair[1]);
        // If second entry with this name
      } else if (typeof query_string[pair[0]] === "string") {
        var arr = [query_string[pair[0]], decodeURIComponent(pair[1])];
        query_string[pair[0]] = arr;
        // If third or later entry with this name
      } else {
        query_string[pair[0]].push(decodeURIComponent(pair[1]));
      }
    }
    return query_string;
  }();

  if (QueryString.name(awf_first)) {
    _id('name_f-0').value = QueryString.name(awf_first);
    _id('name_1-0').value = QueryString.name(awf_last);
    _id('email-0').value = QueryString.email;
    _id('password').value = QueryString.password;
    _id('contact').value = QueryString.contact;
  }
  // QueryString.nameofparameter
  // ex: QueryString.email 
  // QueryString.password
  // QueryString.name
  // QueryString.otherparameter
  // QueryString.anothername

  </script>
</body>
</html>

0 个答案:

没有答案