前端中不同页面之间传递参数的几种方式

1. 通过a标签传递参数,接收页面使用window.location.search获取页面

//01.html
<a href = '02.html?name=Auyuer'>click me to jump</a>



//02.html
function param(){
        var url=window.location.search;
        var params = url.substring(url.indexOf("?")+1);
        var par = params.split("=");
        var str = par[0]+':'+par[1];
        return str;
}

这里说一下Location对象属性都有哪些:

  • location.hash             可设置或返回从#开始的部分    
     例如 http://example.com:1234/test.htm#part2    得到的就是#part2
  • location.host                可设置或返回当前url的主机名称和端口号 (example.com:1234)
  • location.hostname       可设置或返回当前Url的主机名(example.com)
  • location.href           可设置或返回当前整个url(http://example.com:1234/test.htm#part2)
  • location.pathname      可设置或返回当前Url的路径部分(/text.html)
  • location.port                可设置或返回当前Url的端口部分(1234)
  • location.protocol          可设置或返回当前url的协议(http:)
  • location.search            可设置或返回当前 URL 的查询部分(?开始)

2. 通过手动给url拼接字符,利用window.open打开新窗口

   

<button id="btn">click me to jump</button>
<script>
    var btn = document.getElementById('btn');
    btn.onclick = function(){
        var url = '01 end.html?username=Auyuer';
        window.open(url, '_self')
    }
</script>
//window.open(URL,name,features,replace)

具体参数如下表所示:

在这里区别一下window.open()   和 Document.open()的区别:

<button οnclick="createNewDoc()">点击写入新文档</button>


function createNewDoc()
    {
        var new_doc = document.open("text/html","replace");
        var txt = "<html><body>这是新的文档</body></html>";
        new_doc.write(txt);
        new_doc.close();
    }

//新文档用 document.write() 方法或 document.writeln() 方法写入内容,写入内容后,必须用 document.close() 方法关闭文档,并迫使其内容显示出来。

可自行运行下代码感受区别

window对象下有document对象

3. form表单提交数据

//01.html
<form action="01 end.html" method="get">
    <label for = 'username'>username:
        <input type="text" name="username" id = username/>
    </label>
    <input type="submit">
</form>

//02.html
param();
    function param(){
        var params = window.location.search;
        params = params.substring(params.indexOf('?')+1);
        params = params.split("=");
        console.log(params[0] + ':'+decodeURI(params[1]));
    }

这里使用decodeURI做一个转码

 

转载于:https://www.cnblogs.com/Auyuer/p/8620690.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值