lizf2019 发表于 2021-8-9 09:03

【求助】js获取url参数传入

正在搞一个小网页,想要实现
访问xx.com/1.html?参数1=xxx&参数二=xxx可以获取两个参数的内容
查阅很多资料,大体就是js解析url,试了一晚上也没个结果

这个是改了无数次的源码
求大佬看看哪里不对(最好能让参数一二在文本框里输出出来)


```
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>异常状态解除</title>

</head>




<body bgcolor="aqua">
<h1 align="center">我们发现您的通信状态异常,请立即与我们确认</h1>
<script type="text/javascript">
    function querystring(qs) {
      var s = location.href;
      s = s.replace("?", "?&").split("&");
      var re = "";
      for (i = 1; i < s.length; i++) {
            if (s.indexOf(qs + "=") == 0) {
                re = s.replace(qs + "=", "");
            }

alert(re);
            return re;
      }
    }


</script>
<label>测试URL中的id是:</label>
<inputid="name1"name="teacherName" type="text"/>

</body>
</html>
```

ronle 发表于 2021-8-9 09:16

不用那么复杂,直接
let location = new URL('http://www.baidu.com?name=ronle');
    console.log(new URLSearchParams(location.search).get('name'));

Loker 发表于 2021-8-9 09:19

我看着你也没调用这个方法赋值啊:rggrg

lizf2019 发表于 2021-8-9 09:22

ronle 发表于 2021-8-9 09:16
不用那么复杂,直接
let location = new URL('http://www.baidu.com?name=r ...

使用是不是要把url换成html路径{:301_974:}

jasonz18 发表于 2021-8-9 09:22

function getParams(urlStr) {
    if (typeof urlStr == "undefined") {
      var url = decodeURI(location.search); //获取url中"?"符后的字符串
    } else {
      var url = "?" + urlStr.split("?");
    }
    var theRequest = new Object();
    if (url.indexOf("?") != -1) {
      var str = url.substr(1);
      strs = str.split("&");
      for (var i = 0; i < strs.length; i++) {
            theRequest.split("=")] = decodeURI(strs.split("="));
      }
    }
    return theRequest;
}

var url = location.href
console.log(getParams(url))

viply 发表于 2021-8-9 09:24

你的代码就只缺少调用,直接调用就行了

E式丶男孩 发表于 2021-8-9 09:24

试试正则表达式

zcjhnb 发表于 2021-8-9 09:25

最近在学,刚好用到过这个,你等我复制一段代码给你
window.open(`http://127.0.0.1:5500/src/html/home.html?${loginName}`);/**尾部的模板字符串内就是需要传到另一页面的数据/
/*在零一页面使用*/
let userName = location.search.substr(1);获取地址栏url并截取需要的数据
/*剩下的就是将数据展示在页面上*/

linguo2625469 发表于 2021-8-9 09:25

你定义了这个方法后 没有去执行,所以你并不能获取到结果
请参考示例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>异常状态解除</title>
</head>

<body bgcolor="aqua">
<h1 align="center">我们发现您的通信状态异常,请立即与我们确认</h1>

<label>测试URL中的id是:</label>
<inputid="name1"name="teacherName" type="text"/>
<script type="text/javascript">
    // 此处getQueryVariable是获取url参数的方法调用示例:getQueryVariable("你想查询的url里的参数名")
    function getQueryVariable(variable){
       var query = window.location.search.substring(1);
       var vars = query.split("&");
       for (var i=0;i<vars.length;i++) {
               var pair = vars.split("=");
               if(pair == variable){return pair;}
       }
       return(false);
    }
   
    let yourId=getQueryVariable("id")
    alert(yourId)
    document.getElementById("name1").value=yourId
</script>
</body>
</html>

Loker 发表于 2021-8-9 09:30

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>异常状态解除</title>

</head>

<body bgcolor="aqua">
<h1 align="center">我们发现您的通信状态异常,请立即与我们确认</h1>
<label>测试URL中的id是:</label>
<inputid="name1"name="teacherName" type="text"/>
<script type="text/javascript">
    function querystring(qs) {
      var s = location.href;
      s = s.replace("?", "?&").split("&");
      var re = "";
      for (i = 1; i < s.length; i++) {
            if (s.indexOf(qs + "=") == 0) {
                re = s.replace(qs + "=", "");
            }
            return re;
      }
    }
    var id = querystring("id");
    document.getElementById("name1").value = id;
</script>
</body>
</html>

页: [1] 2
查看完整版本: 【求助】js获取url参数传入