本篇转自博客:上海-悠悠

简介

原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96/

运用js的时候,我们有时可能会有这样的需求,就是想要获取浏览器地址栏指定的一项参数,形如:https://i.cnblogs.com/EditPosts.aspx?postid=8628413&update=1,

前言

你想要获取postid的内容8628413,或者update的内容1**,**那么下面就提供解决办法。

我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后会有一个帖子的id,获取到这个id,继续操作传这个帖子id就可以了

解决办法

(博客园的登录机制已经变了,不能用账号和密码登录了,换个网站,或者用cookie登录吧)

其实解决办法也挺简单,只要通过一个函数就可以处理掉

 

 

威尼斯人线上娱乐,一、删除草稿箱

        //当前url地址栏 file:///C:/Users/admin/Desktop/test.html?id=2
        function GetQueryString(name) {
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
            console.log(window.location.search)//?id=2
            var r = window.location.search.substr(1).match(reg);
            if (r != null) return unescape(r[2]);
            return null;
        }
        console.log(GetQueryString('id'))//2    

1.我们前面讲过登录后保存草稿箱,那可以继续接着操作:删除刚才保存的草稿

上面函数的用法很简单,只要把你想要的url参数传进去就可以拿到返回值,注意参数为字符串

威尼斯人线上娱乐 1

发散思维

2.用fiddler抓包,抓到删除帖子的请求,从抓包结果可以看出,传的json参数是postId

上面的函数是直接解决了获取当前页面url中的参数,有事我们可能不是想要处理url,而是想要获取特定字符串中的参数,形如:postid=8628413&update=1

3.这个postId哪里来的呢?可以看上个请求url地址

然后你想要获取postid的对应的值那么要怎么做呢?

4.也就是说保存草稿箱成功之后,重定向一个url地址,里面带有postId这个参数。那接下来我们提取出来就可以了

只需要理解下上面函数的原理就很好改写了

 

 

二、提取参数

        function GetQueryString(str,name) {
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");     
            //str = postid=8628413&update=1                   
            //其实str 就相当于 window.location.search.substr(1)
            var r = str.match(reg);
            if (r != null) return unescape(r[2]);
            return null;
        }
        console.log(GetQueryString('postid=8628413&update=1','postid'))

1.我们需要的参数postId是在保存成功后url地址,这时候从url地址提出对应的参数值就行了,先获取保存成功后url

 

2.通过正则提取需要的字符串,这个参数值前面(postid=)和后面(&)字符串都是固定的

3.这里正则提出来的是list类型,取第一个值就可以是字符串了(注意:每次保存需要修改内容,不能重复)

威尼斯人线上娱乐 2

 

网站地图xml地图