开发者

How do I get URL parameters from a link to form a new link in a Greasemonkey script?

I'm pretty new to jQuery and Greasemonkey, but I want to reform a URL.

For example, given:

http://www.example.com/index.php?value1=blabla1&sid=blabla2&mid=blabla3

I want:

link://www.example.com/blabla1/data/blabla2/blabla3.ext

I tried code like this:

var sid=document.URL.substring(document.URL.indexOf('sid=')+15); 
// How do I开发者_开发百科 set the length of blabla2 ? -7 ?

Hopefully someone understands what I mean and can help me out a little.


Use regular-expression searches to get the values. If you know the param names in advance, it's more straightforward than it looks...

var searchableStr   = document.URL + '&';

var value1  = searchableStr.match (/[\?\&]value1=([^\&\#]+)[\&\#]/i) [1];
var sid     = searchableStr.match (/[\?\&]sid=([^\&\#]+)[\&\#]/i)    [1];
var mid     = searchableStr.match (/[\?\&]mid=([^\&\#]+)[\&\#]/i)    [1];

.
The last bit is then something like:

var domain  = searchableStr.match (/\/\/([w\.]*[^\/]+)/i) [1];

var newlink = '//' + domain + '/' + value1 + '/data/' + sid + '/' + mid + '.ext';  
.

 .

PS: It's only slightly more work if you don't know the names in advance.
PPS: This is educational code. Beware of extra spaces and malicious data, when using in the wild.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜